django中登陆form校验

1、什么是form校验

1、生成HTML标签 + 携带数据

- 保留原来提交的数据,不再担心form表单提交时页面刷新。
- 显示默认值,做编辑页面显示默认值。

2、数据校验,对用户提交的数据格式校验

example:

form = LoginForm(data=request.POST)
if form.is_valid():
    print(form.cleaned_data)
else:
    print(form.errors)

2、form组件

导入:from django import forms

class LoginForm(forms.Form):
    role = forms.ChoiceField(
        required=True,
        choices=(("2", "客户"), ("1", "管理员")),
        widget=forms.Select(attrs={"class": "form-control"})
    )
    username = forms.CharField(
        initial="wupeiqi",
        required=True,
        正则表达式
        widget=forms.TextInput(attrs={"class": "form-control", "placeholder": "用户名"})
    )
    
    # 自定义方法(钩子)
    def clean_username(self):
        raise 异常
        return 123
    
form = LoginForm(initial={"username":"xxx","password":"xx"})

注意:1、form组件中的定义的字段名和通过form表单和ajax请求传输的数据字段一样

2、通过form组件生成标签时,定义的字段名就是input标签的name字段,id字段为(id_组件字段名)

3、form组件详解:django2.2-form表单详解_django form-CSDN博客文章目录一、form组件二、form表单的基本语法1. form表单类的书写2. 校验数据3. 渲染表单标签三、展示错误信息1. 展示错误信息2. 自定义错误信息四、钩子函数(HOOK)五、字段参数和类型1. 核心参数`widget`参数`validators`参数其他参数2. 常用类型一、form组件通常情况下,我们需要自己手动在HTML页面中,编写form标签和其内的其它元素。但这费时费力,而且容易出错,数据验证也比较麻烦。因此,Django在内部集成了一个表单模块,专门用来帮助我们快速处理表单相_django formhttps://blog.csdn.net/qq_39330486/article/details/120764816?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169572070016800182191862%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169572070016800182191862&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-120764816-null-null.142%5Ev94%5Einsert_down28v1&utm_term=django%20form&spm=1018.2226.3001.4187

4、理解:

1、form组件先进行自定义字段的校验

2、再进行clean_(自定义字段)(钩子方法)的校验,注意:一定要有返回值,返回值是什么,校验通过后的值就是什么

3、钩子方法一定是在自定义字段校验通过后才进行校验的

4、clean方法是不管自定义字段是否校验通过都会去执行

5、在校验自定义字段钩子方法时,可以通过raise ValidationError("xxxx")来添加error

from django.core.exceptions import ValidationError
raise ValidationError("xxxxx")

6、添加error也可以通过自定义的form对象来添加

form.add_error("mobile","手机号不存在111")

一定要指定error添加的自定义字段名("mobile")

7、在进行正则校验时注意非贪婪模式("$")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值