Form组件
a) 生成页面
i. {{form.as_p}} . {{form_as_table}} . {{form.as_ul}}
ii.{{form.username.lable}}{{form.username}}
b) 校验功能
i. Form组件初体验
from django import forms
class 类名(forms.Form):
username=forms.CharField(
lable=‘用户名’ #修改页面上显示内容,
required=True #不能为空
min_length=2 #最小长度
)
error_messages={ #设置错误信息内容
'required':'不能为空'
}
ii. 保存数据库
if form_obj.isvalid():
#获取内容
datas_dic=form_obj.cleaned_data
value=datas_dic.get(key)
#保存数据库
#响应
iii. 自定义过滤内容
from django.forms import ValidationError
覆写clean方法
def clean(self):
#1.获取属性
datas_dic=self.cleaned_data
username=datas_dic.get('username')
#2.对内容进行业务逻辑的判断
if username.find('sb') != -1:
error=ValidationError('不符合社会之一价值观!!!')
self.add_error('username',error)
raise error
return self.cleaned_data
iv. 使用正则表达式校验规则
from django.core.validators import RegexValidator
class register_form(forms.Form)
v. mobile=forms.CharField(
label=‘手机号’,
required=True,
validators=[
RegexValidator(r’ ^ [0-9]+
′
,
′
手
机
号
必
须
是
数
字
′
)
,
R
e
g
e
x
V
a
l
i
d
a
t
o
r
(
r
′
1
[
3
−
9
]
[
0
−
9
]
9
','手机号必须是数字'), RegexValidator(r'^1[3-9][0-9]{9}
′,′手机号必须是数字′),RegexValidator(r′1[3−9][0−9]9’,‘手机号格式错误’)
]
)
v.设置显示样式
from django.forms import widgets
class RegisterForm(forms.Form):
username=forms.Charfield(
widget=widgets.TextField(attrs={‘class’:‘name’})
)
password=forms.Charfield(
widget=widgets.PasswordInput(attrs={‘class’:‘name’},render_value=True)
)
c) 回显功能:自动回显
会话
a) Cookie
i.使用方式
1.设置cookie:通过响应对象,HttpResponse(),render(),redirect()
response.set_cookie(key,value),
response.set_cookie(key1,value1),
2.获取cookie:通过HttpRequest对象(request参数)
value=request.COOKIES.get(key)
3.设置过期时间 单位是秒s
response.set_cookie(key,value,max_age=10)
默认过期时间是浏览器关闭
ii. Cookie特点
1.以键值对的方式保存信息
2.基于域名安全
3.将某个网站相关的所有的cookie都携带到网站,
4.Cookie默认时间,关闭浏览器
iii.原理
1.第一次访问服务器的时候,从服务端创建cookie,响应的时候,将cookie信保存到响应头中,返回给浏览器进行保存
2.再次访问服务器时候,浏览器会在请求头中携带所有的cookie所信息,
3.服务端根据自己的需求获取相应的cookie中的值
iv.Cookie是不安全的,一些敏感信息例如密码,不能保存到cookie中,