use*_*053 4 pagination fastapi
我阅读了 fastapi contrib 代码。分页仅适用于 mongodb。fastapi 是否也有用于 postgres db 的分页模块?
小智 6
库中没有自动内置任何内容,但您可以通过查询参数进行设置并将其传递给 ORM,就像 SQL Alchemy 中查询对象的 offset() 和 limit() 方法一样。
FastAPI 查询参数文档中的这个示例让他们在静态数据集上使用它:
from fastapi import FastAPI
app = FastAPI()
fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]
@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10):
return fake_items_db[skip : skip + limit]
Run Code Online (Sandbox Code Playgroud)
您可以使用fastapi-pagination模块,它目前与sqlalchemy和集成gino。
用法如下:
from fastapi_pagination import Page, PaginationParams
from fastapi_pagination.ext.sqlalchemy import paginate
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String, nullable=False)
email = Column(String, nullable=False)
class UserModel(BaseModel):
id: int
name: str
email: str
class Config:
orm_mode = True
app = FastAPI()
@app.get('/users', response_model=Page[UserOut])
def get_users(db: Session = Depends(get_db), params: PaginationParams = Depends()):
return paginate(db.query(User), params)
Run Code Online (Sandbox Code Playgroud)
请注意,此代码的目的是显示fastapi-paginationAPI。您可以在这里找到一个完整的示例:https : //github.com/uriyyo/fastapi-pagination/blob/main/examples/pagination_sqlalchemy.py
| 归档时间: |
|
| 查看次数: |
4835 次 |
| 最近记录: |