|  |  | 
| python:robyn [2024/06/26 10:24]  – 作成 ともやん | python:robyn [2024/06/27 04:59] (現在)  –  ともやん | 
|---|
| ドキュメント: [[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>&&</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>&&</b></font> <font color="#26A269">.</font> .venv/bin/activate <font color="#12488B"><b>&&</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<0.4.0,>=0.3.1 (from inquirerpy==0.3.4->robyn) | 
|  | Downloading pfzy-0.3.4-py3-none-any.whl.metadata (4.9 kB) | 
|  | Collecting prompt-toolkit<4.0.0,>=3.0.1 (from inquirerpy==0.3.4->robyn) | 
|  | Downloading prompt_toolkit-3.0.47-py3-none-any.whl.metadata (6.4 kB) | 
|  | Collecting dill>=0.3.6 (from multiprocess==0.70.14->robyn) | 
|  | Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB) | 
|  | Collecting toml>=0.10.2 (from rustimport==1.3.4->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>=2.0 (from jinja2==3.0.1->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<4.0.0,>=3.0.1->inquirerpy==0.3.4->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 '/home/tomoyan/my_projects/robyn_proj'... | 
|  | New Robyn project created in '/home/tomoyan/my_projects/robyn_proj' | 
|  | </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">"postgresDB"</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">"localhost"</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">"postgres"</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">"password"</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">"5455"</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">"/users"</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">"</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"</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">"users"</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">"/"</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">"Hello World!"</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">"__main__"</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">"0.0.0.0"</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> | 
|  |  |