麻瓜编程·python实战·4-2作业:给博客增加分页功能

我的结果

麻瓜编程·python实战·4-2作业:给博客增加分页功能_第1张图片
博客的框架,58二手手机转转信息的数据

我的代码(过程):

这次作业有点绕

麻瓜编程·python实战·4-2作业:给博客增加分页功能_第2张图片
模块介绍

思路

麻瓜编程·python实战·4-2作业:给博客增加分页功能_第3张图片
整体思路
### 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)
### 分页器 ###
{% if ArtiInfo.has_previous %} < pre {% endif %} {{ ArtiInfo.number }} of {{ ArtiInfo.paginator.num_pages }} {% if ArtiInfo.has_next %} next > {% endif %}

关于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,共有几页

我的感想

写完都还是有点晕乎乎的

你可能感兴趣的:(麻瓜编程·python实战·4-2作业:给博客增加分页功能)