# nicegui 这个项目有点类似 [gradio](https://git.yoqi.me/python/gradio),python 快速开发web前后端项目。 用户无需编写css,html,直接通过python代码快速布局,并使用 **fastapi** ,快速打通前后端。此外对接sqlite数据库。 目前还不成熟,组件不是很多,UI可定制性不强。 ## Usage 直接打开 https://github.com/zauberzeug/nicegui 下 examples目录查看代码,使用比较简单。 main.py ``` import frontend from fastapi import FastAPI app = FastAPI() @app.get('/') def read_root(): return {'Hello': 'World'} frontend.init(app) ``` frontend.py ``` from fastapi import FastAPI from nicegui import app, ui def init(fastapi_app: FastAPI) -> None: @ui.page('/show') def show(): ui.label('Hello, FastAPI!') # NOTE dark mode will be persistent for each user across tabs and server restarts ui.dark_mode().bind_value(app.storage.user, 'dark_mode') ui.checkbox('dark mode').bind_value(app.storage.user, 'dark_mode') ui.run_with( fastapi_app, storage_secret='pick your private secret here', # NOTE setting a secret is optional but allows for persistent storage per user ) ``` 启动: ``` uvicorn main:app --reload --log-level debug --port 8000 ``` ## 源码分析 当执行启动命令,调用 uvicorn 命令,启动一个 FastAPI 实例app,