fastapi 初始化 数据库表结构
时间: 2024-08-12 12:05:32 浏览: 122
FastAPI是一个轻量级的Web框架,结合了Python的简单性和Type hints的强大功能,用于构建RESTful APIs。为了初始化数据库表结构,你可以使用SQLAlchemy,这是一个广泛使用的Python ORM工具,它可以让你像操作Python对象一样操作数据库。
以下是使用FastAPI和SQLAlchemy初始化数据库表结构的基本步骤:
1. **安装依赖**:
首先,你需要在项目中安装SQLAlchemy以及对应的数据库驱动,例如`sqlalchemy`和`psycopg2`(针对PostgreSQL)等。
```bash
pip install sqlalchemy psycopg2-binary
```
2. **创建数据模型**(ORM模型):
定义每个数据库表作为Python类,继承自`Base`,并在类中定义相应的字段。
```python
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String, unique=True)
email = Column(String, unique=True)
```
3. **配置数据库连接**:
在FastAPI应用中,设置数据库连接,包括引擎、URI等信息。
```python
from sqlalchemy import create_engine
engine = create_engine('postgresql://username:password@localhost/dbname')
Base.metadata.create_all(engine) # 创建所有表结构
```
4. **使用**:
现在你可以使用这个数据库连接,并通过ORM操作表。例如,插入新记录:
```python
from sqlalchemy.orm import sessionmaker
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.post("/users/")
async def create_user(user: User):
with get_db() as db:
new_user = User(username=user.username, email=user.email)
db.add(new_user)
db.commit()
```
当启动FastAPI服务并运行时,它会在第一次运行时自动根据定义的数据模型创建数据库表结构。如果你需要更改表结构,只需要修改数据模型即可,无需额外的操作。
阅读全文