いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Pythonメモ-122 (NiceGUI)

概要

以下、自分用のメモです。

以下の記事で知りました。記事公開してくださった方に感謝。

qiita.com

シンプルでいいですねー。Pythonで記述したら、Webアプリにしてくれるライブラリみたい。

吐き出されるHTMLを見ると、Vue.jsで実行されているみたいですね。

本家サイトは以下。

nicegui.io

github.com

この本家サイト自身が、NiceGUIで出力されていますね。

どんなコントロールが使えるのかは、以下に列挙されています。

https://nicegui.io/reference

凝ったものは無理だとしても、サクッと作ってしまいたいアプリには丁度良さげです。

インストール

インストールは、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


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com