[ fastapi使用sqlalchemy+mysql ]


sqlalchemy中使用mysql

一.依赖安装

第三方包

pip install sqlalchemy
pip intalll pymysql

二.在fastapi中使用

databases.py文件 1. engine创建连接 2. sessionlocal为获取连接 3. Base用来映射数据库表

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:chenhaifeng@47.120.55.99:3306/fastapi"

engine = create_engine(SQLALCHEMY_DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()

model.py表模型文件 1. 要导入databases.py里的Base来继承

from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
from sqlalchemy.orm import relationship

from databases import Base


class English(Base):
    __tablename__ = "english"
    id = Column(Integer, primary_key=True, index=True)
    english = Column(String(length=125))
    chinese = Column(String(length=125))

main.py主文件 1. Base.metadata.create_all(engine)执行数据库迁移

from pydantic import BaseModel
from fastapi import FastAPI, Request, Cookie
from databases import engine
from model import Base
from fastapi.responses import HTMLResponse, JSONResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates

# 数据库表迁移
Base.metadata.create_all(engine)

app = FastAPI()