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