我的結(jié)果
博客的框架砾嫉,58二手手機(jī)轉(zhuǎn)轉(zhuǎn)信息的數(shù)據(jù)
我的代碼(過(guò)程):
這次作業(yè)有點(diǎn)繞
模塊介紹
思路
整體思路
### 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):
# 必須包含數(shù)據(jù)庫(kù)中的全部字段(除_id),也就說(shuō)這部分少寫(xiě)一個(gè)都不行
# 這里class里面name、region……什么的涝开,
name = StringField()
region = StringField()
contact = StringField()
title = StringField()
price = StringField()
time = StringField()
# 定位數(shù)據(jù)庫(kù)中的collection
meta = {'collection':'phone_info_test'}
### views.py ###
from django.shortcuts import render
from blog.models import ArtiInfo # 調(diào)用modules中的類(lèi)
from django.core.paginator import Paginator # 分頁(yè)工具 Paginator
def index(request):
limit = 4
arti_info = ArtiInfo.objects # 提取數(shù)據(jù)
paginator = Paginator(arti_info, limit) # 把提取的數(shù)據(jù)分頁(yè)兴使,每頁(yè)4個(gè)
page = request.GET.get('page', 1) # 把request變成了一個(gè)頁(yè)碼
# 第幾頁(yè) # 類(lèi)型為list,元素為字典米酬,每頁(yè)有幾個(gè)對(duì)象就有幾個(gè)字典(文檔)
loaded = paginator.page(page)
content = {'ArtiInfo': loaded}
return render(request, 'index.html', content)
### 分頁(yè)器 ###
<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>
關(guān)于Paginator
from django.core.paginator import Paginator
Paginator(迭代器, 每頁(yè)個(gè)數(shù))
分頁(yè)器
Paginator.page(1)
返回Paginator對(duì)象
Paginator.page(1).object_list
返回頁(yè)面所有數(shù)據(jù)
Paginator.page(1).has_next()
返回布林值
Paginator.page(1).number
返回int佃蚜,當(dāng)前第幾頁(yè)
Paginator.page(1).paginator.num_pages
返回int蝉揍,共有幾頁(yè)
我的感想
寫(xiě)完都還是有點(diǎn)暈乎乎的