Ver Fonte

first shot at example for custom fastapi app

Rodja Trappe há 2 anos atrás
pai
commit
6d044758f1

+ 19 - 0
examples/custom_fastapi_app/frontend.py

@@ -0,0 +1,19 @@
+from fastapi import FastAPI
+
+
+def init(app: FastAPI) -> None:
+    import builtins
+    builtins.nicegui_APP = app
+    from nicegui import ui, globals
+
+    @ui.page('/show')
+    def show():
+        ui.label('Hello World, FastAPI!')
+
+    globals.title = 'FastAPI'
+    globals.favicon = None
+    globals.dark = False
+    globals.binding_refresh_interval = 0.1
+    globals.excludes = []
+    globals.host = 'localhost'
+    globals.port = 8000

+ 11 - 0
examples/custom_fastapi_app/main.py

@@ -0,0 +1,11 @@
+#!/usr/bin/env python3
+import frontend
+from fastapi import FastAPI
+
+app = FastAPI()
+frontend.init(app)
+
+
+@app.get('/')
+def read_root():
+    return {'Hello': 'World'}

+ 4 - 0
examples/custom_fastapi_app/start.sh

@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+# Start the FastAPI app
+uvicorn main:app --reload

+ 3 - 2
nicegui/nicegui.py

@@ -16,8 +16,9 @@ from .favicon import create_favicon_routes
 from .helpers import safe_invoke
 from .page import page
 from .task_logger import create_task
+import builtins
 
-globals.app = app = FastAPI()
+globals.app = app = builtins.nicegui_APP if hasattr(builtins, 'nicegui_APP') else FastAPI()
 globals.sio = sio = SocketManager(app=app)._sio
 
 app.add_middleware(GZipMiddleware)
@@ -49,7 +50,7 @@ def on_startup() -> None:
     [safe_invoke(t) for t in globals.startup_handlers]
     create_task(binding.loop())
     globals.state = globals.State.STARTED
-    print(f'NiceGUI ready to go on http://{globals.host}:{globals.port}')
+    #print(f'NiceGUI ready to go on http://{globals.host}:{globals.port}')
 
 
 @app.on_event('shutdown')