文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== Robyn - 高速、イノベーターフレンドリー、コミュニティ主導型の Python Web フレームワーク ====== 本家: [[https://robyn.tech/|Robyn - A Fast, Innovator Friendly, and Community Driven Python Web Framework.]]\\ ソースコード: [[git>sparckles/Robyn|sparckles/Robyn: Robyn is a Super Fast Async Python Web Framework with a Rust runtime.]]\\ ドキュメント: [[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> python/robyn.txt 最終更新: 2024/06/27 04:59by ともやん