一、环境安装
安装第三方库来搭建项目依赖
python
pip install fastapi # fastapi框架
pip install tortoise-orm[accel] # 数据库的orm
pip install uvicorn # web服务器
pip install pyjwt # 权限认证
pip install aerich # 数据库迁移
pip install aiomysql # Mysql数据库驱动
二、项目结构
构建大型的项目结构,文件结构如下图

Haskell
├───apps # apps的功能模块
│ └───user # 具体的功能模块
│ │
│ ├──────app.py # 业务逻辑文件
│ ├──────models.py # 数据库模型文件
│ ├──────schemas.py # pydantic模型文件
│
├───logs # 日志文件夹
├───utils # 工具文件价:权限认证等文件可以放在这里
├───main.py # 项目运行入口
├───settings # 项目设置文件
三、配置项目
在main.py文件写入一下内容
python
import uvicorn
from fastapi import FastAPI
from starlette.staticfiles import StaticFiles
from tortoise.contrib.fastapi import register_tortoise
from settings import orm
from apps.user.app import user
app=FastAPI(title='重庆二手房系统',version='1.0.0') # 配置app和swager的标题和版本
register_tortoise(app=app,config=orm) # 在fastapi里连接数据库
app.mount("/static",StaticFiles(directory="static"),name="static") # 挂载静态文件夹
app.include_router(router=user,prefix='/user',tags=['用户模块']) # 配置项目子路由
if __name__ == '__main__':
uvicorn.run(app='main:app',host='127.0.0.1',port=8000,reload=True) # 配置项目服务器
四、配置数据库
在setting.py文件配置以下内容
python
# 配置数据库连接
orm={
"connections": {
"default": {
"engine": "tortoise.backends.mysql",
"credentials": {
"host": "localhost", # 数据库主机
"port": 3306, # 数据库端口
"user": "root", # 用户名
"password": "123456", # 密码
"database": "house" # 数据库名称
}
}
},
"apps": {
"models": {
"models": ["模型的路径和文件名","aerich.models"],
"default_connection": "default",
}
},
"use_tz":False,
"timezone": "Asia/Shanghai", # 配置时区
}
五、数据库迁移
在项目的根目录下,打开终端,依次执行一下命令,执行数据库的迁移
python
aerich init -t settings.orm # 初始化Aerich,指定Aerich配置文件的位置
aerich init-db # 初始化Aerich 的数据库
aerich migrate # 执行迁移
aerich upgrade # 更新迁移