与烧瓶和Peewee的分页

时间:2016-01-10 02:01:11

标签: python flask pagination peewee flask-peewee

我尝试使用paginateFlaskPeewee查询结果playhouse.flask_utils。我尝试使用object_list中的object_list函数。

您可以看到from flask import Flask from playhouse.flask_utils import object_list from peewee import * from database import * @app.route("/items/") def items(): all_items = Quote.select() return object_list("items.html", all_items) 的示例看起来非常简单,以下代码是我尝试工作的代码:

items.html

模板<p>Hello world</p> {% for item in all_items %} <p>{{ item.text }}</p> {% endfor %} {% if page > 1 %} <a class="previous" href="./?page={{ page - 1 }}">Previous</a> {% endif %} {% if pagination.get_pages() > page %} <a class="next" href="./?page={{ page + 1 }}">Next</a> {% endif %} 包含以下内容:

python app.py

当然,我运行127.0.0.1 - - [09/Jan/2016 20:47:17] "GET /items/ HTTP/1.1" 500 - Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/home/web/index.py", line 19, in items return object_list("items.html", all_items) File "/usr/lib/python2.7/site-packages/playhouse/flask_utils.py", line 64, in object_list **kwargs) File "/usr/lib/python2.7/site-packages/flask/templating.py", line 128, in render_template context, ctx.app) File "/usr/lib/python2.7/site-packages/flask/templating.py", line 110, in _render rv = template.render(context) File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 989, in render return self.environment.handle_exception(exc_info, True) File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 754, in handle_exception reraise(exc_type, exc_value, tb) File "/home/web/templates/items.html", line 9, in top-level template code {% if pagination.get_pages() > page %} UndefinedError: 'playhouse.flask_utils.PaginatedQuery object' has no attribute 'get_pages' 但我收到 500内部服务器错误。我对分页查询结果感兴趣,任何想法我怎样才能实现这个?或者你能否发现我在这里做错了什么?先感谢您。

编辑#1,终端中出现以下错误:

ptrace

1 个答案:

答案 0 :(得分:5)

没有onclick$="Your code"方法。使用:get_pages()获取结果页面。使用get_page(x)获取总页数。

这里记录了所有内容:http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#PaginatedQuery