Преглед изворни кода

use starlette route for component files

Falko Schindler пре 3 година
родитељ
комит
cb74d28503
1 измењених фајлова са 4 додато и 7 уклоњено
  1. 4 7
      nicegui/nicegui.py

+ 4 - 7
nicegui/nicegui.py

@@ -3,18 +3,13 @@ from typing import Awaitable, Callable
 import asyncio
 import binding
 from pygments.formatters import HtmlFormatter
+from starlette.routing import Route
+from starlette.responses import FileResponse
 from .ui import Ui  # NOTE: before justpy
 import justpy as jp
 from .elements.element import Element
 from .timer import Timer
 
-@jp.SetRoute('/file')
-def get_file(request):
-    wp = jp.WebPage()
-    with open(request.query_params.get('path')) as f:
-        wp.html = f.read()
-    return wp
-
 wp = jp.QuasarPage(delete_flag=False, title=Ui.config.title, favicon=Ui.config.favicon)
 wp.tailwind = True  # use Tailwind classes instead of Quasars
 wp.css = HtmlFormatter().get_style_defs('.codehilite')
@@ -53,4 +48,6 @@ Element.wp = wp
 Element.view_stack = [main]
 
 app = jp.app
+app.routes.insert(0, Route('/file', lambda r: FileResponse(r.query_params['path'])))
+
 ui = Ui()