start fastapi
2020
版本2021,基于FastApi,这是一个易于使用的Web应用程序
pip3 install -r ./requirements.txtWeb应用程序基于洋葱样式〜
目录结构是:
__init__.py作为用户模块的进入__init__.py作为核心模块的进入,更好地使其能够在其他项目中重复使用运行./main.py启动示例,其中包括:
内部步骤是:
./main.py在./app/__init__.py args上加载./cfg/{env}内部uvicorn.run配置./app/__init__.py Modules和用户处理程序/模型/服务已在Fastapi App的startup活动中加载您可以将启动脚本放入内部./misc/build以获取不同的启动选项
为了构建您的逻辑,以下是共同的步骤:
./main.py./app/handler中添加处理程序,添加相应的import & APP.include_router codes in ./app/__init__.py./app/model中添加数据模型,在./app/service中添加服务./app/middleware一些编码技巧:
/docs在网页上测试路由器async def函数),因为它可能会阻止主evtloop,以免及时处理其他请求。 def函数将在不同的线程中调用./core的代码应共享(对于其他项目), ./app的代码应符合当前项目./misc/dev/gen_code.py来生成处理程序,模型和服务的模板代码。用工作目录作为项目根目录执行它pydantic.BaseModel的代码模型,它功能强大大多数处理请求应包含200个状态代码
一个简单的解决方案是使用./core/model/handler.py中的Resp模型为您的处理程序生成响应主体
{
"success": bool,
"message": str,
"code": IntEnum,
"data": Any,
}
使用Resp.ok产生成功响应并使用Resp.err来产生错误响应
测试处理程序./app/handler/test.py包含WS处理程序示例
要了解更多有关它的信息,请参阅Websocket文档
运行./misc/build/pack.sh将项目打包到./misc/build/start-fastapi.tar.gz
有关Docker部署的示例,请参见./misc/build/Dockerfile