Django 测试开发4 Django 模板和分页器
Django结合前端框架Bootstrap来开发web页面。pip install django-bootstrap3
在setting.py添加‘bootstrap3’。
继承模板。
在base页面添加。
{% block content %}
{% endblock %}
中间为空白,继承页面可以继承使用base页面并自由填充。
{% extends "base.html" %}
{% block content %}
......
{% endblock %}
分页器
常用命令:
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
p = Paginator(数据,2) #创建每页2条数据的分页器
p.count #查看一共有多少条数据
p.num_pages #一共多少页、最大页数。
page2 = p.page(2) #获取第二页数据
page2.has_previous() #是否有上一页
page2.previous_page_number() #上一页是第几页、获取上一页的页数
page2.has_next() #是否有下一页
page2.next_page_number() #下一页是第几页、获取下一页的页数。
page2.start_index() #本页第一条数据
page2.end_index() #本页最后一条数据
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
@login_required
def guest_manage(request):
username = request.session.get('user','') #读取浏览器session
guest_list = Guest.objects.all() #在数据库读取sign_guest表的数据
p = Paginator(guest_list,2) #分页,每页2条数据
page = request.Get.get('page')
try:
contacts =p.page(page)
except PageNotAnInteger:
#如果page不是整数,取第一页数据。
contacts = p.page(1)
except EmptyPage:
#如果page不在范围取最后一页数据
contacts = p.page(p.num_pages)
return render(request,'guest_manage.html',{'user':username,'guests':contacts})
Django 调用数据库方法:get_object_or_404() 默认调用table.objects.get(),如果对象不存在,就会抛出Http404异常
from django.shortcuts import render,get_object_or_404
@login_required
def sign_index(request,eid):
# 默认调用table.objects.get(),如果对象不存在,就会抛出Http404异常
event = get_object_or_404(Event,eid)
return render(request,'event_manage.html',{'event':event})
Sic Parvis Magna