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

时间: 2024-10-04 22:34:50

form组件的相关文章

Django框架之Form组件

新手上路 From组件的主要功能: 1,对form表单提交的数据进行校验. 内部基于正则进行匹配 2,from表单提交保存上次提交的数据. 生成HTML标签 初入大荒 1,创建Form类 class StudentForm(Form): #字段名,最好跟数据库内的字段名一样,好操作 #如CharField,内部包含了正则表达式, name = fields.CharField(max_length=12, min_length=2, required=True, widget=widgets.T

小而美的 React Form 组件

背景 之间在一篇介绍过 Table 组件< React 实现一个漂亮的 Table > 的文章中讲到过,在企业级后台产品中,用的最多且复杂的组件主要包括 Table.Form.Chart,在处理 Table 的时候我们遇到了很多问题.今天我们这篇文章主要是分享一下 Form 组件,在业务开发中, 相对 Table 来说,Form 处理起来更麻烦,不是所有表单都像注册页面那样简单,它往往需要处理非常多的逻辑,比如: 需要处理数据验证逻辑. 在一个项目中的很少有可以复用的表单,每个表单的逻辑都需要

form组件相关 -新 -转

Mr.Seven 博客园 首页 新随笔 联系 订阅 管理 随笔-126  文章-137  评论-268 Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 from django.forms import Form from django.forms import widgets from django.forms import fiel

django Form组件 上传文件

上传文件 注意:FORM表单提交文件要有一个参数enctype="multipart/form-data" 普通上传: urls: url(r'^f1/',views.f1), url(r'^f2/',views.f2), views: def f1(request): if request.method == "GET": return render(request,'f1.html') else: import os #导入os模块 #request.get /

Python之路【第二十一篇】:Django之Form组件

Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from django.forms import Form from django.forms import widgets from django.forms imp

Django框架基础之Form组件

服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能:       1 验证(显示错误信息)       2 保留用户上次输入的信息                  -- 可以生成html标签应用: class A_Form(Form): 字段=fields.字段类型(默认参数: required=True, widget=widgets.插件(attrs={})) 常用字段:Charfield,RegexField,I

认证登录装饰器与form组件的使用

def auth(func): '''制作登录认证的装饰器''' def inner(request,*args,**kwargs): user_info=request.session.get(settings.SJF) if not user_info: return redirect('/login/') return func(request,*args,**kwargs) return inner ''' form组件的使用 1.用户请求数据验证 2.自动生成错误信息 3.打包用户提交

django 之知识点总结以及Form组件

一.model常用操作 1.13个API查询:all,filter,get ,values,values_list,distinct,order_by ,reverse , exclude(排除),count,first,last,esits(判断是否存在) 需要掌握的all.values.values_list的区别 all:打印的是一个QuerySet集合,一个列表里面放的对象 values :是一个字典形式 values_list:是一个元组形式 all的性能是最低的 2.only和def

django补充和form组件

Model常用操作: - 参数:filter - all,values,values_list [obj(id,name,pwd,email),obj(id,name,pwd,email),] models.UserInfo.objects.all() [obj(id,name,email)] # pwd未取值 data_list = models.UserInfo.objects.all().only('name','email') for item in data_list: item.id