Python-Django-Ajax进阶2

-forms组件的渲染错误信息

在模板中:<span>{{ foo.errors.0 }}</span>

-forms使用bootstrap样式

 widget=widgets.EmailInput(attrs={'class':'form-control'}))

-全局和局部钩子函数

AOP:面向切面编程

-局部钩子函数(再校验name)

		def clean_name(self):
			# 从cleaned_data中取出字段的值
			name = self.cleaned_data.get('name')
			# # 校验是否以sb开头
			if name.startswith('sb'):
				raise ValidationError('不能以sb开头')
			else:
				return name

  

-全局钩子函数

		def clean(self):
			pwd=self.cleaned_data.get('pwd')
			re_pwd=self.cleaned_data.get('re_pwd')
			if pwd==re_pwd:
				# 正确,返回self.cleaned_data
				return self.cleaned_data
			else:
				# 校验失败,抛异常
				raise ValidationError('两次密码不一致')

  

cookie,session,token

cookie
-cookie是存在浏览器上的键值对{'name':'lqz','password':123}
-服务器写到浏览器上的
session:
-因为cookie不安全,所有出了session
-存在于服务器上的键值对 'sfdasdfa':{'name':'lqz','password':123}
token:(待研究)

cookie的使用:

设置cookie:
-HttpResponse的对象 obj.set_cookie(key,value,超时时间)
-obj.set_signed_cookie('name','egon',salt='123')
取cookie:
-request.COOKIES.get(key)
-name=request.get_signed_cookie('name',salt='123')
删除:
HttpResponse的对象 obj.delete_cookie('is_login')

session的使用:

设置
-request.session['name']=‘lqz’
-request.session['age']=‘18’

取cookie:
-request.session.get('name')
删除:
-request.session.delete() 只删数据库
-request.session.flush() 浏览器cookie和数据库

了解:其他参数(超时时间)

auth组件

 

猜你喜欢

转载自www.cnblogs.com/du-jun/p/10297743.html