fastapi怎么创建blob类型数据库模型
时间: 2023-04-09 13:04:28 浏览: 117
数据库学习之blob类型的数据操作
您可以使用 SQLAlchemy 中的 LargeBinary 类型来创建 Blob 类型的数据库模型。在 FastAPI 中,您可以使用 Pydantic 模型来定义数据库模型。以下是一个示例:
```python
from sqlalchemy import Column, Integer, LargeBinary
from sqlalchemy.ext.declarative import declarative_base
from pydantic import BaseModel
Base = declarative_base()
class BlobModel(Base):
__tablename__ = "blob_table"
id = Column(Integer, primary_key=True, index=True)
data = Column(LargeBinary)
class BlobSchema(BaseModel):
id: int
data: bytes
class Config:
orm_mode = True
```
在上面的示例中,我们定义了一个名为 BlobModel 的 SQLAlchemy 模型,并使用 LargeBinary 类型来定义 data 列。我们还定义了一个名为 BlobSchema 的 Pydantic 模型,用于在 FastAPI 中使用。
要使用此模型,您可以使用以下代码:
```python
from fastapi import FastAPI
from sqlalchemy.orm import Session
from typing import List
from . import models, schemas
from .database import SessionLocal, engine
app = FastAPI()
models.Base.metadata.create_all(bind=engine)
@app.post("/blobs/", response_model=schemas.BlobSchema)
def create_blob(blob: schemas.BlobSchema, db: Session = Depends(get_db)):
db_blob = models.BlobModel(data=blob.data)
db.add(db_blob)
db.commit()
db.refresh(db_blob)
return db_blob
```
在上面的代码中,我们使用 create_blob 函数来创建一个新的 Blob 记录。我们使用 Pydantic 模型来验证传入的数据,并使用 SQLAlchemy 模型将其保存到数据库中。
阅读全文