Django 之form表单

Django 之form表单补充

1. form组件
        1. 能做什么事?
            1. 能生成HTML代码  input框
            2. 可以校验数据
            3. 保留输入的数据
            4. 有错误的提示
        2. 定义form
            form django import forms
            class RegForm(forms.Form):
                 username = forms.CharField()
                 pwd = forms.CharField()
                
        3. 使用form
            1. 视图函数
                from app01.forms import *
                
                form_obj = RegForm()
                
                return render(request,'reg.html',{'form_obj':form_obj})
                
                form_obj = RegForm(request.POST)
                
                form_obj.is_valid()     —— 》布尔值
                
                form_obj.cleaned_data   ——》 {}    所有通过校验的字段的名字和值
                
            2. 模板
                {{ form_obj.as_p  }}            ——》生成所有的字段  p  label input框
                {{ form_obj.username }}         ——》 生成某个字段的对应的input标签
                {{ form_obj.username.label }}   ——》 生成某个字段的标签名  
                {{ form_obj.username.id_for_label }}    ——》 生成某个字段id
                {{ form_obj.username.errors }}  ——》 生成某个字段的所有的错误信息  
                {{ form_obj.username.errors.0 }}  ——》 生成某个字段的第一个的错误信息   
                {{ form_obj.errors }}           ——》 生成某form表单的所有的错误信息
            3. 字段类型和参数
                1. 字段类型
                    CharField()
                    ChoiceField()  
                2. 参数
                    label        中文的提示 
                    initial      初始值
                    min_length   最小长度
                    max_length   最大长度
                    required     是否是必填的  
                    disabled     是否不可修改
                    error_messages = {
                        'min_length' : '太短了',
                        'max_length' : '够长了'
                        'required':   '不能为空'
                    }
                    validators = [ 校验器1,校验器2 ]
                3. 校验
                    1. 内置的校验
                        min_length   最小长度
                        max_length   最大长度
                        required     是否是必填的
                    2. 自定义校验器
                        from django.core.validators import RegexValidator
                        RegexValidator(正则,错误提示)

                       函数
                        from django.core.exceptions import ValidationError
                        def check_name(value):
                            if 'alex' in value:
                                raise ValidationError('不符合社会主义核心价值观')    
                    3. 钩子
                        局部钩子 
                            def clean_字段名(self):
                                通过校验:返回当前的字段的值
                                不通过:  raise ValidationError()
                                
                        全局钩子
                            def clean(self):
                                通过校验: 返回self.cleaned_data
                                不通过:
                                    self.add_error('字段名',’错误提示‘)
                                    raise ValidationError()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值