ada*_*rsh 7 python pagination flask flask-sqlalchemy
我有这个代码,all()方法和其他所有方法都适用于此,我已经看了一遍,我可以认为该方法也paginate()适用于BaseQuery哪个也是Query
@app.route('/')
@app.route('/index')
@app.route('/blog')
@app.route('/index/<int:page>')
def index(page = 1):
posts = db.session.query(models.Post).paginate(page, RESULTS_PER_PAGE, False)
return render_template('index.html', title="Home", posts=posts)
Run Code Online (Sandbox Code Playgroud)
但这给了我AttributeError: 'Query' object has no attribute 'paginate'
我到处看到的错误,我找不到任何解决方案.
Mar*_*eth 20
从你的问题......
that the method paginate() works on BaseQuery which is also Query
Run Code Online (Sandbox Code Playgroud)
我认为这是你感到困惑的地方."Query"指的是SQLAlchemy Query对象."BaseQuery"指的是Flask-SQLALchemy BaseQuery对象,它是的子类Query.这个子类包括诸如first_or_404()和的助手paginate().但是,这意味着Query对象没有该paginate()功能.实际构建调用"查询"对象的对象的方式取决于您是处理对象Query还是BaseQuery对象.
在此代码中,您将获得SQLAlchemy Query对象,这会导致错误:
db.session.query(models.Post).paginate(...)
Run Code Online (Sandbox Code Playgroud)
如果你使用下面的代码,你得到你正在寻找的分页,因为你正在处理一个BaseQuery对象(来自Flask-SQLAlchemy)而不是一个Query对象(来自SQLAlchemy).
models.Post.query.paginate(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7342 次 |
| 最近记录: |