Version 2021, basée sur Fastapi, une application Web facile à utiliser développée sur Starlette Framework
pip3 install -r ./requirements.txtL'application Web est basée sur le style d'oignon ~
La structure du répertoire est:
__init__.py comme entrée des modules utilisateur__init__.py comme entrée des modules de base, il vaut mieux le faire être réutilisé dans d'autres projets Run ./main.py pour démarrer l'exemple, qui comprend:
Les étapes internes sont:
./main.py charge les configurations à l'intérieur ./cfg/{env} sur CMD Args, puis appelle uvicorn.run pour démarrer l'application Fastapi à ./app/__init__.py./app/__init__.py , les modules de base et les gestionnaires / modèles / services sont chargés lors de l'événement startup de l'application Fastapi Vous pouvez mettre vos scripts de lancement à l'intérieur ./misc/build pour vos différentes options de lancement
Pour construire votre logique, des étapes courantes suit:
./main.py exécute le serveur dans Dev Environment en défaut, dans lequel Hot-Reload est activé./app/handler , ajouter des codes import et APP.include_router dans ./app/__init__.py./app/model , ajouter des services à ./app/service./app/middleware si nécessaireQuelques conseils pour le codage:
/docs pour tester les routeurs sur la page Webasync def ), car elle peut bloquer l'Evtloop principal, afin que d'autres demandes ne soient pas traitées dans le temps. Les fonctions def seront invoquées dans différents threads./core doivent être partageables (pour d'autres projets), les codes de ./app doivent s'adapter au projet actuel./misc/dev/gen_code.py pour générer des codes de modèle pour les gestionnaires, les modèles et les services. Exécutez-le avec le répertoire fonctionnel comme répertoire racine de projetpydantic.BaseModel , c'est puissantLa plupart des demandes gérées doivent contenir un code d'état de 200
Une solution simple consiste à utiliser le ./core/model/handler.py Resp
{
"success": bool,
"message": str,
"code": IntEnum,
"data": Any,
}
Utilisez Resp.ok pour générer une réponse de réussite et utiliser Resp.err pour générer une réponse d'erreur
Le gestionnaire de test ./app/handler/test.py contient des exemples de gestionnaire WS
Pour en savoir plus, voir la documentation WebSocket
Run ./misc/build/pack.sh pour emballer le projet dans ./misc/build/start-fastapi.tar.gz
Voir ./misc/build/Dockerfile pour un exemple de déploiement de Docker