安装fastapi及tortoise-ORM框架

pip install fastapi
pip install "uvicorn[standard]"
pip install tortoise-orm     #安装ORM框架
pip install aerich==0.63   #实现数据库的初始化,迁移等工作

使用aerich初始化数据库及迁移

  1. 应用主目录下创建config.py文件;创建二级目录data及数据模型文件data/models.py:

config.py:

TORTOISE_ORM = {
    "connections": {"default": "sqlite://data/db.sqlite3"},
    #"connections": {"default": "mysql://数据库账号:数据库密码@IP地址:端口/库名"},
    "apps": {
        "models": {
            "models": ["data.models","aerich.models"],  
            #"data.models" 是应用的数据模型文件,用于创建应用表
            #"aerich.models" 会创建一个aerich表,用于记录数据库迁移信息
            "default_connection": "default",
        },
    },
    "routers": [],
    "use_tz": False,   #建议不开启,不然存储日期有很多坑,时区转换在项目中手动处理更稳妥
    "timezone": "Asia/Shanghai"  
}

data/models.py:

from tortoise import fields
from tortoise.models import Model

class Whitelist(Model):
    ip = fields.CharField(pk=True,max_length=50,null=False,description = "白名单IP")
    status = fields.IntField(null=False)
    desc = fields.CharField(max_length=255)
    begin_time = fields.DatetimeField()
    end_time = fields.DatetimeField()

    class Meta:
        table = "whiltelist"    #数据库中表名
  1. 初始化数据库配置信息
(env)PS D:\app>aerich init -t config.TORTOISE_ORM
Success create migrate location ./migrations
Success write config to pyproject.toml    
#在当前目录生成一个文件pyproject.toml(用来保存配置文件路径)和一个文件夹migrations(存放.sql迁移文件)
  1. 创建迁移数据和生成应用模型结构
(env)PS D:\app>aerich init-db
Success create app migrate location migrations\models
Success generate schema for app "models"
#创建数据库文件data/db.sqlite3,并且创建了whitelist和aerich两张表
#migrations目录下创建models子目录,并存放创建表的sql脚本

python fastapi使用笔记_fastapi

4.如果models模型改变,执行以下操作生成迁移数据,然后更新修改到数据库

(env)PS D:\app>aerich migrate --name update_mark
#--name 迁移记录名称(随意命名,方便自己查看即可)

(env)PS D:\app>aerich upgrade #更新修改到数据库