FastAPI / SQLAlchemy 创建多个用户

FastAPI / SQLAlchemy Create Multiple Users

我使用一个有效的 API 端点来创建单个用户。

@app.post("/entity/", response_model=List[schemas.User])
def create_user(user: schemas.User, db: Session = Depends(get_db)):
    crud.create_user(db=db, user=user)
    return JSONResponse(content={"message": "user created successfully"})

class User(BaseModel):
    id: str = Field(default_factory=generate_id)
    first_name: Optional[str] = ""
    last_name: Optional[str] = ""
    username: str

class Config:
    orm_mode = True

def create_user(db: Session,  user: schemas.User):
    db_item = models.User(**user.dict())
    db.add(db_item)
    db.commit()
    db.refresh(db_item)
    return db_item

这可行,但我想通过一个 api 请求创建多个用户。

我想 create_user 函数应该看起来像这样:

def create_user(db: Session, data,  user: schemas.User):
    objects = []
    for user in data:
        db_item = models.User(**user.dict())
        objects.append(dbitem)
    db.bulk_save_objects(objects)
    db.commit()

我只是想不通创建这种批量插入的正确方法是什么

您可以接受用户列表作为请求正文。

def create_user(db: Session, users: List[schemas.User]):
    objects = []
    for user in users:
        db_item = models.User(**user.dict())
        objects.append(dbitem)
    db.bulk_save_objects(objects)
    db.commit()