django—form

form

		 1. 有input标签, 让用户可以填数据;
		 2. 校验form表单提交的数据;
		 3. 提示错误信息。

定义:

from django import forms


class regform(forms, Form):
	user = forms.CharField(label="用户名 ")
	password = form.CharField(label='密码')

使用

视图;

form-obg = regfrom()
return render(request, 'xx.html', {'form_obg'=fomr_obg})

模板:

{{ form_obg.as_p }}  # 自动生成多个p标签,包含label, input框
{{ form_obg.user }}  # 生成某个字段的inpout框
{{ form_obg.user.errors }}  # 某个字段个的错误信息
{{ form_obg.user.errors.0 }}  # 某个字段个的错误信息的第一个
{{  form_obg.errors }}  # 所有字段的错误的信息

字段与参数

label = ‘用户名’,  # 标签名字
min_length=6,  # 校验的规则,最小长度
initial=‘ xxxx’,  # 初始值
error_messages={  # 自定义错误提示
	'min_length':'太短了!',
	'required':'不能为空!',
}
widget=widgets.PasswordInput()  # 插件—指定字段的类型

校验

字段有默认的校验方法:
min_length=6
max_length=6
required=Falsse
校验的自定义规则:
validtors = [校验器1, 校验器2]

 1. form django.core.validators import RegerVaidator
RegexValidator(r'^1[3-9]\d{9}$', '号码格式不正确!')

 2. 自定义函数
 form django.core.exceptions import Validationerror

def check_name(value):
	if 'xxxx' in value:
		raise ValidationError('格式不正确')
钩子函数
  1. 局部钩子
def clean_phone(self):
	value = self.cleaned_data.get('phone')
	if re,match(r'1[3-9]\dd{9}$', value):
		return value
	
	raise ValidationError('手机号不正确')
  1. 全局钩子
def clean(self):
	pwd = self.cleaned_data.get('pwd')
	re_pwd = slef ,cleaned_data.get('re_pwd')
	 if pwd == r_pwd:
	 	return  cleaned_data
	 self.add_error('re_pwd', '两次密码不一致')
	 raise ValidationError('两次密码不一致')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值