我的结果
我的代码(过程):
这次作业有点绕
思路
### settings.py ###
from mongoengine import connect
connect('walden', host='127.0.0.1', port=27017)
### modules.py ###
from django.db import models
from mongoengine import *
class ArtiInfo(Document):
# 必须包含数据库中的全部字段(除_id),也就说这部分少写一个都不行
# 这里class里面name、region……什么的,
name = StringField()
region = StringField()
contact = StringField()
title = StringField()
price = StringField()
time = StringField()
# 定位数据库中的collection
meta = {'collection':'phone_info_test'}
### views.py ###
from django.shortcuts import render
from blog.models import ArtiInfo # 调用modules中的类
from django.core.paginator import Paginator # 分页工具 Paginator
def index(request):
limit = 4
arti_info = ArtiInfo.objects # 提取数据
paginator = Paginator(arti_info, limit) # 把提取的数据分页,每页4个
page = request.GET.get('page', 1) # 把request变成了一个页码
# 第几页 # 类型为list,元素为字典,每页有几个对象就有几个字典(文档)
loaded = paginator.page(page)
content = {'ArtiInfo': loaded}
return render(request, 'index.html', content)
### 分页器 ###
<div class="main-content-pagitor">
{% if ArtiInfo.has_previous %}
<a href="?page={{ ArtiInfo.previous_page_number }}">< pre</a>
{% endif %}
<span> {{ ArtiInfo.number }} of {{ ArtiInfo.paginator.num_pages }} </span>
{% if ArtiInfo.has_next %}
<a href="?page={{ ArtiInfo.next_page_number }}">next ></a>
{% endif %}
</div>
关于Paginator
from django.core.paginator import Paginator
Paginator(迭代器, 每页个数)
分页器
Paginator.page(1)
返回Paginator对象
Paginator.page(1).object_list
返回页面所有数据
Paginator.page(1).has_next()
返回布林值
Paginator.page(1).number
返回int,当前第几页
Paginator.page(1).paginator.num_pages
返回int,共有几页
我的感想
写完都还是有点晕乎乎的