如何将数据从变量加载到Django Paginator中? [英] How to load data from variable into django paginator?
问题描述
我需要基于变量中的数据创建分页器.变量只是python列表.
I need to create paginator based on data from variable. Variable is just python lists.
views.py:
def test(request):
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="pc", # your username
passwd="3346378", # your password
db="mc")
cur = db.cursor()
cur.execute('''SELECT * FROM hello left join hell on hello.Id=hell.Id ''')
row = cur.fetchall()
因此,行是很多列表.以及如何将其加载到分页器中?或者一种方法是为数据创建表和模型,然后使用Django ORM或其他方法使用它?
So, row is lot's of lists. And how can I load it into paginator? Or one way is to create table and model for data and work with it using Django ORM or something?
推荐答案
Django内置了 Paginator
类,您可以查看以下内容:分页示例,用于视图中:
Django has built in Paginator
class you can check this out: paginator objects and a few examples here: Pagination examples, to use in a view : Using Pagination in view
如果它引用多个对象,则写多个变量名:所以它是 rows
而不是 row
if it is referencing muliple objects then write plural variable names: so it is rows
instead of row
因此,在您的视图中:
paginator = Paginator(rows, 25) # Show 25 rows per page
page = request.GET.get('page')
rows = paginator.get_page(page)
return render(request, 'example.html', {'rows': rows})
在HTML中:
{% for r in rows %}
{{ r }}<br>
...
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if rows.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ rows.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ rows.number }} of {{ rows.paginator.num_pages }}.
</span>
{% if rows.has_next %}
<a href="?page={{ rows.next_page_number }}">next</a>
<a href="?page={{ rows.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>
这篇关于如何将数据从变量加载到Django Paginator中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!