day77
昨日回顾:
批量插入数据:
-queryset的方法:bulk_create(对象列表,数字(一次插入多少))
分页器:
from django.core.paginator import Paginator
book_list=models.Book.objeces.all()
pageinator=Paginator(book_list,10)
pageinator.cout
pageinator.num_pages
pageinator.page_range
#生成当前页码对象
current_page=pageinator.page(当前页)
current_page.object_list
current_page.has_next()
current_page.has_pervious()
上一页页码数
下一页页码数
前端:
-模板语言for循环,输出所有页码数
-总页码数不够11,有多少,就输出多少
-总页码数大于11,
-当前页码数<6:page_range=range(1,12)
-当前页码+5>总页码数:page_range=range(pageinator.num_pages-10,pageinator.num_pages+1)
-其他情况:page_range=range(current_page_num-5,current_page_num+6)
-点中页码跳转
-'?page=13'
-'/index/?page=13'----->路径不要忘掉前面的斜杠
今日内容
forms组件
-forms是什么?
就是一个类,可以校验字段(前台传过来的字段)
-怎么用:
-校验字段功能:
-先写一个类,继承Form
from django.shortcuts import render, HttpResponse
from django import forms
# 写一个类,要校验那些字段,就是类的属性
class MyForm(forms.Form):
# 定义一个属性,可以用来校验字符串类型
# 限制最大长度是8,最小长度是3
name=forms.CharField(max_length=8,min_length=3)
pwd=forms.CharField(max_length=8,min_length=3,required=True)
# 校验是否是邮箱格式
email=forms.EmailField()
-使用:
View Code
-渲染模板批量插入数据:
-queryset的方法:bulk_create(对象列表,数字(一次插入多少))
分页器:
from django.core.paginator import Paginator
book_list=models.Book.objeces.all()
pageinator=Paginator(book_list,10)
pageinator.cout
pageinator.num_pages
pageinator.page_range
#生成当前页码对象
current_page=pageinator.page(当前页)
current_page.object_list
current_page.has_next()
current_page.has_pervious()
上一页页码数
下一页页码数
前端:
-模板语言for循环,输出所有页码数
-总页码数不够11,有多少,就输出多少
-总页码数大于11,
-当前页码数<6:page_range=range(1,12)
-当前页码+5>总页码数:page_range=range(pageinator.num_pages-10,pageinator.num_pages+1)
-其他情况:page_range=range(current_page_num-5,current_page_num+6)
-点中页码跳转
-'?page=13'
-'/index/?page=13'----->路径不要忘掉前面的斜杠
今日内容
forms组件
-forms是什么?
就是一个类,可以校验字段(前台传过来的字段)
-怎么用:
-校验字段功能:
-先写一个类,继承Form
from django.shortcuts import render, HttpResponse
from django import forms
# 写一个类,要校验那些字段,就是类的属性
class MyForm(forms.Form):
# 定义一个属性,可以用来校验字符串类型
# 限制最大长度是8,最小长度是3
name=forms.CharField(max_length=8,min_length=3)
pwd=forms.CharField(max_length=8,min_length=3,required=True)
# 校验是否是邮箱格式
email=forms.EmailField()
-使用:
# 校验字段功能 def index(request): if request.method == 'GET': return render(request, 'index.html') elif request.method == 'POST': # print(request.POST) form = User(request.POST) if form.is_valid(): # 校验正确的数据 print(form.cleaned_data) else: # 校验正确的数据 print(form.cleaned_data) # 校验错误的字段:"错误的信息" print(form.errors) # 错误的信息 print(form.errors.get('name')) return HttpResponse('OJBK')
{#方式一#} <form action="" method="post" novalidate> <p>{{ form.name.label }}{{ form.name }}</p> <p style="color: red">{{ form.name.errors.0 }}</p> <p>{{ form.pwd.label }}{{ form.pwd }}</p> <p style="color: red">{{ form.pwd.errors.0 }}</p> <p>{{ form.email.label }}{{ form.email }}</p> <p style="color: red">{{ form.email.errors.0 }}</p> <input type="submit" id="btn" value="登陆"> </form> {#方式二#} <form action="" method="post" novalidate> {% for foo in form %} <p>{{ foo.label }}{{ foo }}</p> {% endfor %} </form> {#方式三#} <form action="" method="post" novalidate> {{ form.as_p }}