Python攻城师的成长————Django框架(forms组件、cookie与session)

今日学习目标 完结forms组件的学习,进一步学习cookie与session文章目录今日学习目标学习内容一、forms组件钩子函数二、forms组件字段类型及参数三、ModelForm简介四、cookie与session简介cookiesessionSession和Cookie的区别django中操作cookie学习内容forms组件钩子函数forms组件字段类型及参数ModelForm简介cookie与session简介一、forms组件钩子函数当你需要对某一个字段数据进
摘要由CSDN通过智能技术生成

今日学习目标

  • 完结forms组件的学习,进一步学习cookie与session


学习内容

  • forms组件钩子函数
  • forms组件字段类型及参数
  • ModelForm简介
  • cookie与session简介

一、forms组件钩子函数

当你需要对某一个字段数据进行额外的一系列校验,可以考虑使用钩子函数
钩子函数是forms组件暴露给用户,可以自定义的校验规则
必须通过字段本身之前的校验规则,才会进行钩子函数的校验。

用法:在自定义的form类中书写方法即可

局部钩子

针对单个字段的,使用局部钩子

# 局部钩子(针对某一个字段做额外的校验)   校验用户名中不能包含666 一旦包含 提示
def clean_username(self):
	username = self.cleaned_data.get('username')
	if '666' in username:
		# 给username字段下面提示错误信息
		self.add_error('username','jason')
	return username

全局钩子

针对多个字段的校验,使用全局钩子,eg:校验两次密码是否一致

def clean(self):
	password = self.cleaned_data.get('password')
	confirm_password = self.cleaned_data.get('confirm_password')
	if not password == confirm_password:
		self.add_error('confirm_password','两次密码不一致')
	return self.cleaned_data

二、forms组件字段类型及参数

forms组件字段类型,多注意:CharField、IntegerField、ChoiceField、EmailField、 DateField、TimeField、DateTimeField、FileField(文件上传)、ImageField(图像上传)

各个参数的说明:

  • min_value 最小值

  • max_value 最大值

  • required: 控制该字段是否必填

  • invalid: 格式不合法

  • max_length: 限制要校验字段的最大长度

  • min_length: 限制要校验字段的最小长度

  • error_messages: 控制错误信息的值, 比如max_length校验失败时, 在errors字典中 ErrorDict : {“校验错误的字段”:[“错误信息”,]}会有一个’‘max_length’':[‘太长’] 这样一个信息,value的值是一个列表,是因为在校验的时候可以设置多个校验限制

  • validators 正则校验器

from django.core.validators import RegexValidator
  phone = forms.CharField(
        validators=[
                    RegexValidator(r'^[0-9]+$', '请输入数字'),
                    RegexValidator(r'^159[0-9]+$', '数字必须以159开头')],
    )
  • choices
    选择类型的标签内部对应关系
    可以直接编写 也可以从数据库中获取
hobby = forms.MultipleChoiceField(
    choices=(
    	(1, "篮球"), 
    	(2, "足球"),
        (3, "双色球"),
        )
 )
def __init__(self, *args, **kwargs):
    super
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值