fastapi连接mysql数据库
时间: 2023-09-15 20:19:09 浏览: 127
可以使用第三方库`fastapi-sqlalchemy`与`mysql-connector-python`来连接MySQL数据库。
首先安装这两个库:
```
pip install fastapi-sqlalchemy mysql-connector-python
```
然后创建一个`database.py`文件,用于初始化数据库连接:
```python
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 数据库连接信息
DB_USER = 'your_db_user'
DB_PASSWORD = 'your_db_password'
DB_HOST = 'your_db_host'
DB_PORT = 'your_db_port'
DB_NAME = 'your_db_name'
# 创建数据库连接
SQLALCHEMY_DATABASE_URL = f"mysql+mysqlconnector://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
engine = create_engine(SQLALCHEMY_DATABASE_URL)
# 创建SessionLocal类,用于创建数据库会话
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# 创建Base类,用于ORM映射
Base = declarative_base()
```
然后在`main.py`文件中使用`SessionLocal`对象即可操作数据库:
```python
from fastapi import FastAPI
from sqlalchemy.orm import Session
from database import SessionLocal, engine
app = FastAPI()
# 创建数据库表
Base.metadata.create_all(bind=engine)
# 获取数据库会话
def get_db():
try:
db = SessionLocal()
yield db
finally:
db.close()
# 定义路由
@app.get("/users/")
def read_users(db: Session = Depends(get_db)):
users = db.query(User).all()
return users
```
其中`User`是一个ORM模型,需要在`database.py`中定义。
阅读全文