概要
以下、自分用のメモです。
以下の記事で知りました。記事公開してくださった方に感謝。
シンプルでいいですねー。Pythonで記述したら、Webアプリにしてくれるライブラリみたい。
吐き出されるHTMLを見ると、Vue.jsで実行されているみたいですね。
本家サイトは以下。
この本家サイト自身が、NiceGUIで出力されていますね。
どんなコントロールが使えるのかは、以下に列挙されています。
凝ったものは無理だとしても、サクッと作ってしまいたいアプリには丁度良さげです。
インストール
インストールは、pipで一発でした。
> python3 -m venv venv > .\venv\Scripts\Activate.ps1 (venv) > python -V Python 3.10.7 (venv) > python -m pip install nicegui Collecting nicegui Collecting httpx<0.24.0,>=0.23.0 Collecting docutils<0.18.0,>=0.17.1 Collecting websockets<11.0,>=10.3 Collecting typing-extensions>=3.10.0 Collecting watchfiles<0.17.0,>=0.16.1 Collecting markdown2<3.0.0,>=2.4.3 Collecting justpy<0.3.0,>=0.2.3 Collecting Pygments<3.0.0,>=2.9.0 Collecting matplotlib<4.0.0,>=3.4.1 Collecting uvicorn<0.19.0,>=0.18.0 Collecting asttokens<3.0.0,>=2.0.5 Collecting six Collecting httpcore<0.16.0,>=0.15.0 Collecting rfc3986[idna2008]<2,>=1.3 Collecting sniffio Collecting certifi Collecting demjson3>=3.0.5 Collecting starlette>=0.20.4 Collecting wheel Collecting addict>=2.4.0 Collecting itsdangerous>=2.1.2 Collecting jinja2>=3.1.2 Collecting aiofiles Collecting twine Collecting numpy>=1.19 Collecting pillow>=6.2.0 Collecting fonttools>=4.22.0 Collecting contourpy>=1.0.1 Collecting pyparsing>=2.2.1 Collecting kiwisolver>=1.0.1 Collecting python-dateutil>=2.7 Collecting cycler>=0.10 Collecting packaging>=20.0 Collecting click>=7.0 Collecting h11>=0.8 Collecting anyio<4,>=3.0.0 Collecting idna>=2.8 Collecting colorama Collecting h11>=0.8 Collecting MarkupSafe>=2.0 Collecting keyring>=15.1 Collecting requests>=2.20 Collecting urllib3>=1.26.0 Collecting pkginfo>=1.8.1 Collecting requests-toolbelt!=0.9.0,>=0.8.0 Collecting readme-renderer>=35.0 Collecting rich>=12.0.0 Collecting importlib-metadata>=3.6 Collecting zipp>=0.5 Collecting pywin32-ctypes!=0.1.0,!=0.1.1 Collecting jaraco.classes Collecting bleach>=2.1.0 Collecting charset-normalizer<3,>=2 Collecting commonmark<0.10.0,>=0.9.0 Collecting webencodings Collecting more-itertools Using legacy 'setup.py install' for demjson3, since package 'wheel' is not installed. Installing collected packages: webencodings, rfc3986, pywin32-ctypes, demjson3, commonmark, addict, zipp, wheel, websockets, urllib3, typing-extensions, sniffio, six, pyparsing, Pygments, pkginfo, pillow, numpy, more-itertools, MarkupSafe, markdown2, kiwisolver, itsdangerous, idna, h11, fonttools, docutils, cycler, colorama, charset-normalizer, certifi, aiofiles, rich, requests, python-dateutil, packaging, jinja2, jaraco.classes, importlib-metadata, contourpy, click, bleach, asttokens, anyio, watchfiles, uvicorn, starlette, requests-toolbelt, readme-renderer, matplotlib, keyring, httpcore, twine, httpx, justpy, nicegui Running setup.py install for demjson3 ... done Successfully installed MarkupSafe-2.1.1 Pygments-2.13.0 addict-2.4.0 aiofiles-22.1.0 anyio-3.6.1 asttokens-2.0.8 bleach-5.0.1 certifi-2022.9.24 charset-normalizer-2.1.1 click-8.1.3 colorama-0.4.5 commonmark-0.9.1 contourpy-1.0.5 cycler-0.11.0 demjson3-3.0.5 docutils-0.17.1 fonttools-4.37.4 h11-0.12.0 httpcore-0.15.0 httpx-0.23.0 idna-3.4 importlib-metadata-5.0.0 itsdangerous-2.1.2 jaraco.classes-3.2.3 jinja2-3.1.2 justpy-0.2.8 keyring-23.9.3 kiwisolver-1.4.4 markdown2-2.4.5 matplotlib-3.6.1 more-itertools-8.14.0 nicegui-0.9.14 numpy-1.23.3 packaging-21.3 pillow-9.2.0 pkginfo-1.8.3 pyparsing-3.0.9 python-dateutil-2.8.2 pywin32-ctypes-0.2.0 readme-renderer-37.2 requests-2.28.1 requests-toolbelt-0.10.0 rfc3986-1.5.0 rich-12.6.0 six-1.16.0 sniffio-1.3.0 starlette-0.21.0 twine-4.0.1 typing-extensions-4.4.0 urllib3-1.26.12 uvicorn-0.18.3 watchfiles-0.16.1 webencodings-0.5.1 websockets-10.3 wheel-0.37.1 zipp-3.9.0
(venv) > python Python 3.10.7 (tags/v3.10.7:6cc6b13, Sep 5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from nicegui import ui >>> dir(ui) ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add_body_html', 'add_head_html', 'add_route', 'add_static_files', 'await_javascript', 'button', 'card', 'card_section', 'chart', 'checkbox', 'color_input', 'color_picker', 'colors', 'column', 'custom_example', 'dialog', 'expansion', 'get', 'html', 'icon', 'image', 'input', 'interactive_image', 'joystick', 'keyboard', 'label', 'line_plot', 'link', 'log', 'markdown', 'menu', 'menu_item', 'menu_separator', 'notify', 'number', 'on_connect', 'on_disconnect', 'on_shutdown', 'on_startup', 'open', 'open_async', 'page', 'plot', 'radio', 'row', 'run', 'run_javascript', 'scene', 'select', 'shutdown', 'slider', 'switch', 'table', 'timer', 'toggle', 'tree', 'update', 'upload'] >>>
参考資料
https://hub.docker.com/r/zauberzeug/nicegui
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場