zoukankan      html  css  js  c++  java
  • form组件

    一、form组件
        1.- Form组件
                - 创建类,继承Form
                - 创建字段,字段=正则表达式; PS: 字段名称,required,  error_messages = {required,invalid}
                - form = MyForm(data=request.POST)
                - form.is_valid()
                - form.cleaned_data
                - form.errors
        2.Form组件
                1. 用户请求数据验证
                2. 自动生成错误信息
                3. 打包用户提交正确信息
                4. 错误:保留上次输入内容
                5. 定制页面上显示的HTML标签
                Django Form组件
                1. 创建规则(类,字段)
                    class Foo:
                        username = xxx
                        password = xxx
                        email = xxx
                2. 数据和规则进行匹配
                    form = Foo(data=xxx,initial=初始化)
                    form.is_valid()
                    form.cleaned_data
                    form.errors
        3.内置字段
                Field
                required=True,               是否允许为空
                widget=None,                 HTML插件
                label=None,                  用于生成Label标签或显示内容
                initial=None,                初始值
                help_text='',                帮助信息(在标签旁边显示)
                error_messages=None,         错误信息 {'required': '不能为空', 'invalid': '格式错误'}
                show_hidden_initial=False,   是否在当前插件后面再加一个隐藏的且具有默认值的插件(可用于检验两次输入是否一直)
                validators=[],               自定义验证规则
                localize=False,              是否支持本地化
                disabled=False,              是否可以编辑
                label_suffix=None            Label内容后缀
            CharField(Field)
                max_length=None,             最大长度
                min_length=None,             最小长度
                strip=True                   是否移除用户输入空白
            IntegerField(Field)
                max_value=None,              最大值
                min_value=None,              最小值
            FloatField(IntegerField)
            DecimalField(IntegerField)
                max_value=None,              最大值
                min_value=None,              最小值
                max_digits=None,             总长度
                decimal_places=None,         小数位长度
            BaseTemporalField(Field)
                input_formats=None          时间格式化  
            DateField(BaseTemporalField)    格式:2015-09-01
            TimeField(BaseTemporalField)    格式:11:12
            DateTimeField(BaseTemporalField)格式:2015-09-01 11:12
            DurationField(Field)            时间间隔:%d %H:%M:%S.%f    
        4.内置插件
                TextInput(Input)
                NumberInput(TextInput)
                EmailInput(TextInput)
                URLInput(TextInput)
                PasswordInput(TextInput)
                HiddenInput(TextInput)
                Textarea(Widget)
                DateInput(DateTimeBaseInput)
                DateTimeInput(DateTimeBaseInput)
                TimeInput(DateTimeBaseInput)
                CheckboxInput
                Select
                NullBooleanSelect
                SelectMultiple
                RadioSelect
                CheckboxSelectMultiple
                FileInput
                ClearableFileInput
                MultipleHiddenInput
                SplitDateTimeWidget
                SplitHiddenDateTimeWidget
                SelectDateWidget    
        5.常用选择插件
                单radio,值为字符串
                user = fields.CharField(
                    initial=2,
                    widget=widgets.RadioSelect(choices=((1,'上海'),(2,'北京'),))
                )
                单radio,值为字符串
                user = fields.ChoiceField(
                    choices=((1, '上海'), (2, '北京'),),
                    initial=2,
                    widget=widgets.RadioSelect
                )
                单select,值为字符串
                user = fields.CharField(
                    initial=2,
                    widget=widgets.Select(choices=((1,'上海'),(2,'北京'),))
                 )
                单select,值为字符串
                user = fields.ChoiceField(
                    choices=((1, '上海'), (2, '北京'),),
                    initial=2,
                    widget=widgets.Select
                )
                多选select,值为列表
                user = fields.MultipleChoiceField(
                    choices=((1,'上海'),(2,'北京'),),
                    initial=[1,],
                    widget=widgets.SelectMultiple
                )
                单checkbox
                user = fields.CharField(
                   widget=widgets.CheckboxInput()
                )
               多选checkbox,值为列表
                user = fields.MultipleChoiceField(
                   initial=[2, ],
                   choices=((1, '上海'), (2, '北京'),),
                   widget=widgets.CheckboxSelectMultiple

    三、   

       1. Form基本使用
            - 类
            - 字段
            - is_valid
            - cleaned_data
            - errors
        2. 字段参数:
             - max_length
             - min_length
             - validators = [RegexValidator('xxx')]
        3. 钩子函数
            - clean_字段名
            注意:
                必须有返回值
                只能拿自己当前字段值
                raise ValidationError('xxx')
        4. 下拉框数据源实时更新
            - 重写构造方法
                __init__
                    - 先执行父类构造方法
                    - self.fields['xx'].choices = xxxxx
            - ModelChoiceField

    四、

    form组件
        1.- Form组件
                - 创建类,继承Form
                - 创建字段,字段=正则表达式; PS: 字段名称,required,  error_messages = {required,invalid}
                - form = MyForm(data=request.POST)
                - form.is_valid()
                - form.cleaned_data
                - form.errors
        2.Form组件
                1. 用户请求数据验证
                2. 自动生成错误信息
                3. 打包用户提交正确信息
                4. 错误:保留上次输入内容
                5. 定制页面上显示的HTML标签
                Django Form组件
                1. 创建规则(类,字段)
                    class Foo:
                        username = xxx
                        password = xxx
                        email = xxx
                2. 数据和规则进行匹配
                    form = Foo(data=xxx,initial=初始化)
                    form.is_valid()
                    form.cleaned_data
                    form.errors

  • 相关阅读:
    第九次训练赛
    什么是 Catalan 数列以及其应用
    Python pip 安装与使用
    HDU 1179:Ollivanders: Makers of Fine Wands since 382 BC.
    身份证信息
    流量暴增,掌门教育如何基于 Spring Cloud Alibaba 构建微服务体系?
    从零入门 Serverless | 函数计算的可观测性
    如何管理越来越多的 operator?OLM 给你答案
    Fluid: 让大数据和 AI 拥抱云原生的一块重要拼图
    SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可监控)
  • 原文地址:https://www.cnblogs.com/mengqingjian/p/7810860.html
Copyright © 2011-2022 走看看