|
@@ -1,6 +1,6 @@
|
|
# nicegui
|
|
# nicegui
|
|
|
|
|
|
-这个项目有点类似 [gradio](https://git.yoqi.me/python/gradio),python 快速开发web前后端项目。
|
|
|
|
|
|
+这个项目有点类似 [gradio](https://git.yoqi.me/python/gradio),python 快速开发web前后端项目。nicegui+fastapi
|
|
|
|
|
|
用户无需编写css,html,直接通过python代码快速布局,并使用 **fastapi** ,快速打通前后端。此外对接**sqlite**数据库。
|
|
用户无需编写css,html,直接通过python代码快速布局,并使用 **fastapi** ,快速打通前后端。此外对接**sqlite**数据库。
|
|
|
|
|
|
@@ -11,54 +11,6 @@
|
|
|
|
|
|
直接打开 https://github.com/zauberzeug/nicegui 下 examples目录查看代码,使用比较简单。
|
|
直接打开 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
|
|
|
|
-```
|
|
|
|
-
|
|
|
|
-
|
|
|
|
## 源码分析
|
|
## 源码分析
|
|
|
|
|
|
首先 **nicegui 基于fastapi开发web框架**。
|
|
首先 **nicegui 基于fastapi开发web框架**。
|
|
@@ -72,9 +24,6 @@ ui.label('Hello, FastAPI!')
|
|
代码,如何在页面上生成一个div呢?
|
|
代码,如何在页面上生成一个div呢?
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
**1、首先nicegui启动app实例:**
|
|
**1、首先nicegui启动app实例:**
|
|
|
|
|
|
```
|
|
```
|
|
@@ -112,24 +61,7 @@ def on_event(sid: str, msg: Dict) -> None:
|
|
handle_event(client, msg)
|
|
handle_event(client, msg)
|
|
```
|
|
```
|
|
|
|
|
|
|
|
+## Reference
|
|
|
|
|
|
-
|
|
|
|
-2、
|
|
|
|
-
|
|
|
|
-```
|
|
|
|
- @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')
|
|
|
|
-
|
|
|
|
-```
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+- [zdimension/plexdlweb](https://github.com/zdimension/plexdlweb)4
|
|
|
|
|