📢 开箱即用,所有分支持续同步更新
😓 由于分支过多,不易维护, 所以你也可以在同类型分支之间 cv 功能从而自定义demo
async -> master
fastapi + sqlalchyme + alembic + aiomysql + aioredis
📢: 含 redis 邮箱验证码登录
async -> async-APScheduler
fastapi + sqlalchyme + alembic + aiomysql + aioredis + APScheduler
📢: 在 master 分支基础上扩展, 加入 APScheduler 定时任务
✨: 删除了邮箱验证码登录, 新增了图片验证码登录
async -> async-CRUDBase
fastapi + sqlalchyme + alembic + aiomysql + aioredis + APScheduler
📢: 在 master 分支基础上扩展,对普通 CRUD 操作进行封装,加入 APScheduler 定时任务
async -> async+Casbin-RBAC
fastapi + sqlalchyme + alembic + aiomysql + aioredis + APScheduler + pycasbin
📢: 在 async-CRUDBase 分支基础上扩展,加入 pycasbin(RBAC) 授权
sync -> sync
fastapi + sqlalchyme + alembic + pymysql + redis
📢: 含 redis 图片验证码登录
sync -> sync-CRUDBase
fastapi + sqlalchyme + alembic + pymysql + redis + APScheduler
📢: 在 sync 分支基础上扩展,对普通 CRUD 操作进行封装,加入 APScheduler 定时任务
sync -> sync-Plus
fastapi + sqlalchyme + alembic + pymysql + redis + APScheduler + pycasbin
📢: 在 sync-CRUDBase 分支基础上扩展,加入 pycasbin(RBAC) 授权
全部分支:
git clone https://gitee.com/wu_cl/fastapi_mysql_demo.git
指定分支:
git clone -b 分支名 https://gitee.com/wu_cl/fastapi_mysql_demo.git
first > 项目根目录下安装所需依赖包
pip install -r requirements.txt
next > 配置数据库,执行迁移
1 > 修改 core/conf.py 文件中数据库配置: # DB
2 > 终端进入 backend/app/ 目录下, 生成迁移文件
执行: alembic revision --autogenerate
3 > 执行迁移: alembic upgrade head
4 > 运行 init_test_data.py 文件,初始化数据
next > 启动 redis
next > 运行 main.py 文件启动 FastAPI
end > 打开浏览器,访问 http://127.0.0.1:8000/v1/docs/
结构树基本大致相同,详情请查看源代码
├── backend
│ └── app
│ ├── alembic
│ │ ├── env.py
│ │ ├── README
│ │ └── script.py.mako
│ ├── alembic.ini
│ ├── api
│ │ ├── __init__.py
│ │ ├── jwt_security.py
│ │ └── v1
│ │ ├── __init__.py
│ │ ├── test_redis.py
│ │ └── user.py
│ ├── common
│ │ ├── __init__.py
│ │ ├── log.py
│ │ ├── pagination.py
│ │ └── sys_redis.py
│ ├── core
│ │ ├── conf.py
│ │ ├── __init__.py
│ │ └── path_conf.py
│ ├── crud
│ │ ├── __init__.py
│ │ └── user_crud.py
│ ├── datebase
│ │ ├── base_class.py
│ │ ├── db_mysql.py
│ │ └── __init__.py
│ ├── middleware
│ │ ├── access_middle.py
│ │ └── __init__.py
│ ├── model
│ │ ├── __init__.py
│ │ └── user.py
│ ├── schemas
│ │ ├── __init__.py
│ │ ├── sm_token.py
│ │ └── sm_user.py
│ ├── test
│ │ └── __init__.py
│ |── utils
│ | ├── generate_uuid.py
│ | ├── __init__.py
│ | ├── pydantic_as_form.py
│ | └── send_email_verification_code.py
│ ├── __init__.py
│ ├── init_test_data.py
│ └─ main.py
├── LICENSE
├── README.md
└── requirements.txt