差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

python:robyn [2024/06/26 10:24] – 作成 ともやんpython:robyn [2024/06/27 04:59] (現在) ともやん
行 4: 行 4:
 ドキュメント: [[https://robyn.tech/documentation|Robyn API documentation]]\\ ドキュメント: [[https://robyn.tech/documentation|Robyn API documentation]]\\
  
 +===== プロジェクトの作成 =====
 +公式: [[https://robyn.tech/documentation/example_app#installing-robyn|]]\\
 +   [[https://robyn.tech/documentation/api_reference#installing-robyn|]]\\
 +公式サンプル: [[git>sparckles/example_robyn_app|sparckles/example_robyn_app]]\\
 +
 +<WRAP color_term>
 +<WRAP color_command><html><pre>
 +<font color="#0087FF"><b>$</b></font> <font color="#26A269">mkdir</font> <font color="#A347BA">-p</font> robyn_proj <font color="#12488B"><b>&amp;&amp;</b></font> <font color="#26A269">cd</font> robyn_proj
 +<font color="#0087FF"><b>$</b></font> <font color="#26A269">python</font> <font color="#A347BA">-m</font> venv .venv <font color="#12488B"><b>&amp;&amp;</b></font> <font color="#26A269">.</font> .venv/bin/activate <font color="#12488B"><b>&amp;&amp;</b></font> <font color="#26A269">pip</font> install <font color="#A347BA">-U</font> pip
 +</pre></html></WRAP>
 +<WRAP color_result><html><pre>
 +Requirement already satisfied: pip in ./.venv/lib64/python3.12/site-packages (23.3.2)
 +Collecting pip
 +  Downloading pip-24.1-py3-none-any.whl.metadata (3.6 kB)
 +Downloading pip-24.1-py3-none-any.whl (1.8 MB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">1.8/1.8 MB</font> <font color="#C01C28">8.7 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Installing collected packages: pip
 +  Attempting uninstall: pip
 +    Found existing installation: pip 23.3.2
 +    Uninstalling pip-23.3.2:
 +      Successfully uninstalled pip-23.3.2
 +Successfully installed pip-24.1
 +</pre></html></WRAP>
 +<WRAP color_command><html><pre>
 +(.venv) <font color="#0087FF"><b>$</b></font> <font color="#26A269">pip</font> install robyn robyn<font color="#12488B"><b>[</b></font>templating<font color="#12488B"><b>]</b></font>
 +</pre></html></WRAP>
 +<WRAP color_result_long><html><pre>
 +Collecting robyn
 +  Downloading robyn-0.56.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.6 kB)
 +Collecting watchdog==2.2.1 (from robyn)
 +  Downloading watchdog-2.2.1-py3-none-manylinux2014_x86_64.whl.metadata (34 kB)
 +Collecting multiprocess==0.70.14 (from robyn)
 +  Downloading multiprocess-0.70.14-py310-none-any.whl.metadata (6.6 kB)
 +Collecting nestd==0.3.1 (from robyn)
 +  Downloading nestd-0.3.1-py3-none-any.whl.metadata (3.4 kB)
 +Collecting inquirerpy==0.3.4 (from robyn)
 +  Downloading InquirerPy-0.3.4-py3-none-any.whl.metadata (8.1 kB)
 +Collecting rustimport==1.3.4 (from robyn)
 +  Downloading rustimport-1.3.4-py3-none-any.whl.metadata (13 kB)
 +Collecting orjson==3.9.15 (from robyn)
 +  Downloading orjson-3.9.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (49 kB)
 +     <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">49.5/49.5 kB</font> <font color="#C01C28">5.6 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Collecting uvloop~=0.19.0 (from robyn)
 +  Downloading uvloop-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB)
 +Collecting pfzy&lt;0.4.0,&gt;=0.3.1 (from inquirerpy==0.3.4-&gt;robyn)
 +  Downloading pfzy-0.3.4-py3-none-any.whl.metadata (4.9 kB)
 +Collecting prompt-toolkit&lt;4.0.0,&gt;=3.0.1 (from inquirerpy==0.3.4-&gt;robyn)
 +  Downloading prompt_toolkit-3.0.47-py3-none-any.whl.metadata (6.4 kB)
 +Collecting dill&gt;=0.3.6 (from multiprocess==0.70.14-&gt;robyn)
 +  Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)
 +Collecting toml&gt;=0.10.2 (from rustimport==1.3.4-&gt;robyn)
 +  Downloading toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB)
 +Collecting jinja2==3.0.1 (from robyn[templating])
 +  Downloading Jinja2-3.0.1-py3-none-any.whl.metadata (3.5 kB)
 +Collecting MarkupSafe&gt;=2.0 (from jinja2==3.0.1-&gt;robyn[templating])
 +  Downloading MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
 +Collecting wcwidth (from prompt-toolkit&lt;4.0.0,&gt;=3.0.1-&gt;inquirerpy==0.3.4-&gt;robyn)
 +  Downloading wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)
 +Downloading robyn-0.56.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">2.3/2.3 MB</font> <font color="#C01C28">8.7 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading InquirerPy-0.3.4-py3-none-any.whl (67 kB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">67.7/67.7 kB</font> <font color="#C01C28">9.1 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading multiprocess-0.70.14-py310-none-any.whl (134 kB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">134.3/134.3 kB</font> <font color="#C01C28">10.3 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading nestd-0.3.1-py3-none-any.whl (2.8 kB)
 +Downloading orjson-3.9.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138 kB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">138.7/138.7 kB</font> <font color="#C01C28">10.1 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading rustimport-1.3.4-py3-none-any.whl (26 kB)
 +Downloading watchdog-2.2.1-py3-none-manylinux2014_x86_64.whl (78 kB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">79.0/79.0 kB</font> <font color="#C01C28">10.8 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading Jinja2-3.0.1-py3-none-any.whl (133 kB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">133.7/133.7 kB</font> <font color="#C01C28">11.1 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading uvloop-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">4.2/4.2 MB</font> <font color="#C01C28">11.4 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading dill-0.3.8-py3-none-any.whl (116 kB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">116.3/116.3 kB</font> <font color="#C01C28">9.0 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
 +Downloading pfzy-0.3.4-py3-none-any.whl (8.5 kB)
 +Downloading prompt_toolkit-3.0.47-py3-none-any.whl (386 kB)
 +   <font color="#5FAF00">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font> <font color="#26A269">386.4/386.4 kB</font> <font color="#C01C28">10.3 MB/s</font> eta <font color="#2AA1B3">0:00:00</font>
 +Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
 +Downloading wcwidth-0.2.13-py2.py3-none-any.whl (34 kB)
 +Installing collected packages: wcwidth, watchdog, uvloop, toml, prompt-toolkit, pfzy, orjson, nestd, MarkupSafe, dill, rustimport, multiprocess, jinja2, inquirerpy, robyn
 +Successfully installed MarkupSafe-2.1.5 dill-0.3.8 inquirerpy-0.3.4 jinja2-3.0.1 multiprocess-0.70.14 nestd-0.3.1 orjson-3.9.15 pfzy-0.3.4 prompt-toolkit-3.0.47 robyn-0.56.0 rustimport-1.3.4 toml-0.10.2 uvloop-0.19.0 watchdog-2.2.1 wcwidth-0.2.13
 +</pre></html></WRAP>
 +<WRAP color_command><html><pre>
 +(.venv) <font color="#0087FF"><b>$</b></font> <font color="#26A269">python</font> <font color="#A347BA">-m</font> robyn <font color="#A347BA">--create</font>
 +</pre></html></WRAP>
 +<WRAP color_result><html><pre>
 +<font color="#D7AF87">?</font> Directory Path:<font color="#5FAFFF"> .</font>
 +<font color="#D7AF87">?</font> Need Docker? (Y/N)<font color="#5FAFFF"> Y</font>
 +<font color="#D7AF87">?</font> Please select project type (Mongo/Postgres/Sqlalchemy/Prisma): <font color="#5FAFFF"> Postgres</font>
 +Creating a new Robyn project &apos;/home/tomoyan/my_projects/robyn_proj&apos;...
 +New Robyn project created in &apos;/home/tomoyan/my_projects/robyn_proj&apos;
 +</pre></html></WRAP>
 +<WRAP color_command><html><pre>
 +(.venv) <font color="#0087FF"><b>$</b></font> <font color="#26A269">tree</font>
 +</pre></html></WRAP>
 +<WRAP color_result><html><pre>
 +<font color="#12488B"><b>.</b></font>
 +├── Dockerfile
 +├── <font color="#12488B"><b>__pycache__</b></font>
 +│   └── app.cpython-312.pyc
 +├── app.py
 +├── requirements.txt
 +└── supervisord.conf
 +
 +2 directories, 5 files
 +</pre></html></WRAP>
 +<WRAP color_command><html><pre>
 +(.venv) <font color="#0087FF"><b>$</b></font> <font color="#26A269">bat</font> <u style="text-decoration-style:solid">app.py</u>
 +</pre></html></WRAP>
 +<WRAP color_result><html><pre class=Bat>
 +<font color="#444444">   1</font> <font color="#F92672">import</font><font color="#F8F8F2"> psycopg2</font>
 +<font color="#444444">   2</font> <font color="#F92672">from</font><font color="#F8F8F2"> robyn </font><font color="#F92672">import</font><font color="#F8F8F2"> Robyn</font>
 +<font color="#444444">   3</font> 
 +<font color="#444444">   4</font> <font color="#FFFFFF">DB_NAME</font><font color="#F8F8F2"> </font><font color="#F92672">=</font><font color="#F8F8F2"> </font><font color="#E6DB74">&quot;postgresDB&quot;</font>
 +<font color="#444444">   5</font> <font color="#FFFFFF">DB_HOST</font><font color="#F8F8F2"> </font><font color="#F92672">=</font><font color="#F8F8F2"> </font><font color="#E6DB74">&quot;localhost&quot;</font>
 +<font color="#444444">   6</font> <font color="#FFFFFF">DB_USER</font><font color="#F8F8F2"> </font><font color="#F92672">=</font><font color="#F8F8F2"> </font><font color="#E6DB74">&quot;postgres&quot;</font>
 +<font color="#444444">   7</font> <font color="#FFFFFF">DB_PASS</font><font color="#F8F8F2"> </font><font color="#F92672">=</font><font color="#F8F8F2"> </font><font color="#E6DB74">&quot;password&quot;</font>
 +<font color="#444444">   8</font> <font color="#FFFFFF">DB_PORT</font><font color="#F8F8F2"> </font><font color="#F92672">=</font><font color="#F8F8F2"> </font><font color="#E6DB74">&quot;5455&quot;</font>
 +<font color="#444444">   9</font> 
 +<font color="#444444">  10</font> <font color="#F8F8F2">conn </font><font color="#F92672">=</font><font color="#F8F8F2"> psycopg2.connect(</font><font color="#FD971F">database</font><font color="#F92672">=</font><font color="#FFFFFF">DB_NAME</font><font color="#F8F8F2">, </font><font color="#FD971F">host</font><font color="#F92672">=</font><font color="#FFFFFF">DB_HOST</font><font color="#F8F8F2">, </font><font color="#FD971F">user</font><font color="#F92672">=</font><font color="#FFFFFF">DB_USER</font><font color="#F8F8F2">, </font><font color="#FD971F">password</font><font color="#F92672">=</font><font color="#FFFFFF">DB_PASS</font><font color="#F8F8F2">, </font><font color="#FD971F">port</font><font color="#F92672">=</font><font color="#FFFFFF">DB_PORT</font><font color="#F8F8F2">)</font>
 +<font color="#444444">  11</font> 
 +<font color="#444444">  12</font> <font color="#F8F8F2">app </font><font color="#F92672">=</font><font color="#F8F8F2"> Robyn(__file__)</font>
 +<font color="#444444">  13</font> 
 +<font color="#444444">  14</font> 
 +<font color="#444444">  15</font> <font color="#75715E"># create a route to fetch all users</font>
 +<font color="#444444">  16</font> <font color="#F8F8F2">@app.get(</font><font color="#E6DB74">&quot;/users&quot;</font><font color="#F8F8F2">)</font>
 +<font color="#444444">  17</font> <font color="#F92672">def</font><font color="#F8F8F2"> </font><font color="#A6E22E">get_users</font><font color="#F8F8F2">():</font>
 +<font color="#444444">  18</font> <font color="#F8F8F2">    cursor </font><font color="#F92672">=</font><font color="#F8F8F2"> conn.cursor()</font>
 +<font color="#444444">  19</font> <font color="#F8F8F2">    cursor.execute(</font><font color="#E6DB74">&quot;</font><font color="#F92672">SELECT</font><font color="#E6DB74"> </font><font color="#FFFFFF">*</font><font color="#E6DB74"> </font><font color="#F92672">FROM</font><font color="#E6DB74"> users&quot;</font><font color="#F8F8F2">)</font>
 +<font color="#444444">  20</font> <font color="#F8F8F2">    all_users </font><font color="#F92672">=</font><font color="#F8F8F2"> cursor.fetchall()</font>
 +<font color="#444444">  21</font> <font color="#F8F8F2">    </font><font color="#F92672">return</font><font color="#F8F8F2"> {</font><font color="#E6DB74">&quot;users&quot;</font><font color="#F8F8F2">: all_users}</font>
 +<font color="#444444">  22</font> 
 +<font color="#444444">  23</font> 
 +<font color="#444444">  24</font> <font color="#F8F8F2">@app.get(</font><font color="#E6DB74">&quot;/&quot;</font><font color="#F8F8F2">)</font>
 +<font color="#444444">  25</font> <font color="#F92672">def</font><font color="#F8F8F2"> </font><font color="#A6E22E">index</font><font color="#F8F8F2">():</font>
 +<font color="#444444">  26</font> <font color="#F8F8F2">    </font><font color="#F92672">return</font><font color="#F8F8F2"> </font><font color="#E6DB74">&quot;Hello World!&quot;</font>
 +<font color="#444444">  27</font> 
 +<font color="#444444">  28</font> 
 +<font color="#444444">  29</font> <font color="#F92672">if</font><font color="#F8F8F2"> __name__ </font><font color="#F92672">==</font><font color="#F8F8F2"> </font><font color="#E6DB74">&quot;__main__&quot;</font><font color="#F8F8F2">:</font>
 +<font color="#444444">  30</font> <font color="#F8F8F2">    app.start(</font><font color="#FD971F">url</font><font color="#F92672">=</font><font color="#E6DB74">&quot;0.0.0.0&quot;</font><font color="#F8F8F2">, </font><font color="#FD971F">port</font><font color="#F92672">=</font><font color="#BE84FF">8080</font><font color="#F8F8F2">)</font>
 +</pre></html></WRAP>
 +</WRAP>
  
  • python/robyn.1719365081.txt.gz
  • 最終更新: 2024/06/26 10:24
  • by ともやん