Version 2021, basierend auf Fastapi, einer benutzerfreundlichen Web-App, die auf Starlette Framework entwickelt wurde
pip3 install -r ./requirements.txtDie Webanwendung basiert auf Zwiebelstil ~
Die Verzeichnisstruktur lautet:
__init__.py als Eintrag von Benutzermodulen__init__.py als Eintritt von Kernmodulen. Machen Sie es besser in der Lage, in anderen Projekten wiederverwendet zu werden Run ./main.py , um das Beispiel zu starten, das enthält:
Die internen Schritte sind:
./main.py lädt die Konfigurationen in ./cfg/{env} auf CMD Args und ruft uvicorn.run auf, um die Fastapi -App unter ./app/__init__.py zu starten./app/__init__.py , Kernmodule und Benutzerhandler/Modelle/Dienste werden beim startup der Fastapi -App geladen Sie können Ihre Startskripte in die Einstiegs -Skripte einstellen ./misc/build für Ihre verschiedenen Startoptionen
Um Ihre Logik aufzubauen, folgen gemeinsame Schritte:
./main.py führt den Server in Dev-Umgebung in Standard aus, in dem Hot-Reload aktiviert ist./app/handler hinzu, fügen Sie den entsprechenden import hinzu und APP.include_router codes in ./app/__init__.py./app/model hinzu, fügen Sie Dienste in ./app/service hinzu./app/middleware hinzuEinige Tipps zum Codieren:
/docs , um die Router auf der Webseite zu testenasync def -Funktionen), da es die Haupt -EVTLOOP blockieren kann, damit andere Anfragen nicht rechtzeitig behandelt werden. def -Funktionen werden in verschiedenen Threads aufgerufen./core sollten gemeinsam nutzbar sein (für andere Projekte), Codes von ./app sollte zum aktuellen Projekt passen./misc/dev/gen_code.py verwenden, um Vorlagencodes für Handler, Modelle und Dienste zu generieren. Führen Sie es mit dem Arbeitsverzeichnis als Projektroot -Verzeichnis auspydantic.BaseModel , es ist mächtigDie meisten der bearbeiteten Anfragen sollten einen Statuscode von 200 enthalten
Eine einfache Lösung besteht darin, Resp -Modell in ./core/model/handler.py zu verwenden, um Reaktionskörper für Ihre Handler zu generieren
{
"success": bool,
"message": str,
"code": IntEnum,
"data": Any,
}
Verwenden Sie Resp.ok , um eine Erfolgsantwort zu generieren und Resp.err zu verwenden, um Fehlerantwort zu generieren
Der Testhandler ./app/handler/test.py enthält WS -Handler -Beispiele
Weitere Informationen darüber finden Sie in WebSocket -Dokumentation
Run ./misc/build/pack.sh , um das Projekt in ./misc/build/start-fastapi.tar.gz zu packen
Siehe ./misc/build/Dockerfile für ein Beispiel für die Docker -Bereitstellung