fastapi-scaff
What is this?
- by: axiner
- fastapi-scaff
- This is a fastapi scaff.
- new project
- add api
- tpl template
- about project:
- auto init project (conf, db, log...)
- auto register router
- auto add middleware/exceptions
- integrated api-key/jwt
- integrated sqlalchemy
- integrated migration
- integrated celery
- integrated docker
- ...
- more documents: 请点击链接
Project template
-
Architecture: ASM
- A api
- S services
- M models
-
Flow: main.py(app) - core(middleware) - api - services - models
-
Layout:
- The naming has been finalized after multiple revisions, making it concise and easy to understand.
- Some modules are integrated via the following methods:
- Flexibly enable modules (database, loguru, redis, etc.) through parameters when creating a project with new.
- Easily integrate templates (celery, docker, swarm, etc.) into existing projects using the tpl command.
└── fastapi-scaff
├── app (应用)
│ ├── api ├── (接口)
│ │ └── v1 │ └── (版本1)
│ ├── core ├── (基础)
│ │ ├── conf │ ├── (配置)
│ │ ├── db │ ├── (数据库)
│ │ ├── log │ ├── (日志)
│ │ └── ... │ └── (...)
│ ├── models ├── (数据模型)
│ ├── services ├── (业务逻辑)
│ ├── utils ├── (工具集)
│ └── main.py └── (主入口)
├── app_celery (应用-异步任务)
├── config (配置目录)
├── docs (文档目录)
├── tests (测试目录)
├── .dockerignore
├── .gitignore
├── .python-version
├── docker-build.sh
├── docker-compose.yaml
├── Dockerfile
├── LICENSE
├── README.md
├── requirements.txt
└── runserver.py
-
【Other】
- light:Please create and view (with
-t light)
- tiny:Please create and view (with
-t tiny)
- single:Please create and view (with
-t single)
Installation
This package can be installed using pip (Python>=3.11):
pip install fastapi-scaff
Scaff usage
- 1)help document
- 2)new project
fastapi-scaff new <myproj>
- light:
fastapi-scaff new <myproj> -t light
- tiny:
fastapi-scaff new <myproj> -t tiny
- single:
fastapi-scaff new <myproj> -t single
- 3)add api
cd to project root dir
fastapi-scaff add <myapi>
- x)integrated celery
- New project:
fastapi-scaff new <myproj> --celery
- Existing project:
fastapi-scaff tpl celery -p <mycelery>
Project run
- 1)cd to project root dir
- 2)modify the configuration, such as for the database
- 3)
pip install -r requirements.txt
- 4)
python runserver.py
- x)migration
- create project with migration support:
fastapi-scaff new <myproj> --migration
- execution commands (run before server startup):
- generate:
python runmigration.py generate init
- upgrade:
python runmigration.py upgrade
- about alembic: click here
- x)docker
- project files:
- Dockerfile*
- docker-build.sh (default Dockerfile.slim)
- docker-compose.yaml
- about docker: click here
License
This project is released under the MIT License (MIT). See LICENSE
☕ 请我喝咖啡
享受开源,也感谢支持。
如果本项目对您有用,Buy Me a Coffee :)