fastapi插入postgresql数据
时间: 2024-06-13 15:03:10 浏览: 217
FastAPI是一个轻量级的Web框架,用于Python,它使构建RESTful APIs变得简单。而PostgreSQL是强大的开源关系型数据库系统。在FastAPI中,我们可以使用SQLAlchemy或asyncpg等库来与PostgreSQL进行交互,包括数据的插入操作。以下是使用FastAPI和SQLAlchemy插入数据的基本步骤:
1. 安装依赖:
首先确保安装了`fastapi`, `sqlalchemy`, 和 `asyncpg`(如果用的是异步版本)。
```bash
pip install fastapi sqlalchemy asyncpg
```
2. 创建数据库模型:
假设有一个名为`User`的表,你可以定义一个对应的 SQLAlchemy 模型:
```python
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String, unique=True)
```
3. 连接到数据库:
在FastAPI应用中,你可以创建一个异步数据库连接器:
```python
from fastapi import FastAPI
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session
app = FastAPI()
engine = create_engine("postgresql://user:password@localhost/db_name")
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
async def get_db():
db = await scoped_session(SessionLocal)
try:
yield db
finally:
db.close()
```
4. 插入数据:
在处理请求的视图函数中,你可以使用`get_db`获取数据库上下文,然后执行插入操作:
```python
@app.post("/users/")
async def create_user(user: User):
async with get_db() as db:
db.add(user)
await db.commit()
return {"message": "User created successfully"}
```
阅读全文