FastAPI / SQLAlchemy创建多个用户



我使用一个工作的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()

我不知道如何创建这种bulkinsert

可以接受用户列表作为请求体。

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()