此 Repo 提供一個開發 FastAPI 的樣板,僅供參考。
.
├── app
│ ├── rss
│ │ ├── dependencies.py
│ │ ├── models.py
│ │ ├── router.py
│ │ ├── schemas.py
│ │ └── service.py
│ ├── user
│ │ ├── dependencies.py
│ │ ├── models.py
│ │ ├── router.py
│ │ ├── schemas.py
│ │ └── service.py
│ ├── config.py
│ ├── database.py
│ └── main.py
├── tests
│ ├── test_rss.py
│ └── test_user.py
├── .gitignore
├── Dockerfile
├── README.md
└── requirements.txt
- api
- rss
- dependencies.py:依賴項
- models.py:有關 rss 的資料庫欄位設定
- router.py:有關 rss 的 API router
- schemas.py:有關 rss 的 pydantic model
- service.py:有關 rss 的業務邏輯,包括 CRUD 等
- user
- dependencies.py:依賴項
- models.py:有關 user 的資料庫欄位設定
- router.py:有關 user 的 API router
- schemas.py:有關 user 的 pydantic model
- service.py:有關 user 的業務邏輯,包括 CRUD 等
- config.py:設定檔
- database.py:資料庫設定 (如 engine 等)
- main.py:所有 API router 的整合及整個 project 的設定 (如 CORS 等)
- user.py:有關 user 的 pydantic model
- rss
- tests
- test_rss.py:有關 rss 的測試檔
- test_user.py:有關 user 的測試檔
cd new_version
pyenv exec python3 -m venv env
source env/bin/activate
pip3 install -r requirements.txt
uvicorn app.main:app --reload
docker build -t fastapi_structure .
docker run -d --name fastapi_structure -p 9527:80 fastapi_structure
tiangolo/full-stack-fastapi-template