一、Form类
创建Form类时,主要涉及到 【字段】 和 【插件】,字段用于对用户请求数据的验证,插件用于自动生成HTML;
1、Django内置字段如下:
1 FIEld 2 required=True,是否允许为空 3 Widget=None,HTML插件 4 label=None,用于生成Label标签或显示内容 5 initial=None,初始值 6 help_text=‘‘,帮助信息(在标签旁边显示) 7 error_messages=None,错误信息 {‘required‘: ‘不能为空‘,‘invalID‘: ‘格式错误‘} 8 show_hIDden_initial=False,是否在当前插件后面再加一个隐藏的且具有默认值的插件(可用于检验两次输入是否一直) 9 valIDators=[],自定义验证规则 10 localize=False,是否支持本地化 11 Disabled=False,是否可以编辑 12 label_suffix=None Label内容后缀 13 14 15 CharFIEld(FIEld) 16 max_length=None,最大长度 17 min_length=None,最小长度 18 strip=True 是否移除用户输入空白 19 20 IntegerFIEld(FIEld) 21 max_value=None,最大值 22 min_value=None,最小值 23 24 floatFIEld(IntegerFIEld) 25 ... 26 27 DecimalFIEld(IntegerFIEld) 28 max_value=None,最大值 29 min_value=None,最小值 30 max_digits=None,总长度 31 decimal_places=None,小数位长度 32 33 BaseTemporalFIEld(FIEld) 34 input_formats=None 时间格式化 35 36 DateFIEld(BaseTemporalFIEld) 格式:2015-09-01 37 TimeFIEld(BaseTemporalFIEld) 格式:11:12 38 DateTimeFIEld(BaseTemporalFIEld)格式:2015-09-01 11:12 39 40 DurationFIEld(FIEld) 时间间隔:%d %H:%M:%s.%f 41 ... 42 43 RegexFIEld(CharFIEld) 44 regex,自定制正则表达式 45 max_length=None,最大长度 46 min_length=None,最小长度 47 error_message=None,忽略,错误信息使用 error_messages={‘invalID‘: ‘...‘} 48 49 EmailFIEld(CharFIEld) 50 ... 51 52 fileFIEld(FIEld) 53 allow_empty_file=False 是否允许空文件 54 55 ImageFIEld(fileFIEld) 56 ... 57 注:需要PIL模块,pip3 install Pillow 58 以上两个字典使用时,需要注意两点: 59 - form表单中 enctype="multipart/form-data" 60 - vIEw函数中 obj = MyForm(request.POST,request.fileS) 61 62 URLFIEld(FIEld) 63 ... 64 65 66 BooleanFIEld(FIEld) 67 ... 68 69 NullBooleanFIEld(BooleanFIEld) 70 ... 71 72 ChoiceFIEld(FIEld) 73 ... 74 choices=(),选项,如:choices = ((0,‘上海‘),(1,‘北京‘),) 75 required=True,是否必填 76 Widget=None,插件,默认select插件 77 label=None,Label内容 78 initial=None,初始值 79 help_text=‘‘,帮助提示 80 81 82 ModelChoiceFIEld(ChoiceFIEld) 83 ... django.forms.models.ModelChoiceFIEld 84 queryset,# 查询数据库中的数据 85 empty_label="---------",# 默认空显示内容 86 to_fIEld_name=None,# HTML中value的值对应的字段 87 limit_choices_to=None # ModelForm中对queryset二次筛选 88 89 ModelMultipleChoiceFIEld(ModelChoiceFIEld) 90 ... django.forms.models.ModelMultipleChoiceFIEld 91 92 93 94 TypedChoiceFIEld(ChoiceFIEld) 95 coerce = lambda val: val 对选中的值进行一次转换 96 empty_value= ‘‘ 空值的默认值 97 98 MultipleChoiceFIEld(ChoiceFIEld) 99 ...100 101 TypedMultipleChoiceFIEld(MultipleChoiceFIEld)102 coerce = lambda val: val 对选中的每一个值进行一次转换103 empty_value= ‘‘ 空值的默认值104 105 ComboFIEld(FIEld)106 fIElds=() 使用多个验证,如下:即验证最大长度20,又验证邮箱格式107 fIElds.ComboFIEld(fIElds=[fIElds.CharFIEld(max_length=20),fIElds.EmailFIEld(),])108 109 MultiValueFIEld(FIEld)110 PS: 抽象类,子类中可以实现聚合多个字典去匹配一个值,要配合MultiWidget使用111 112 SplitDateTimeFIEld(MultiValueFIEld)113 input_date_formats=None,格式列表:[‘%Y--%m--%d‘,‘%m%d/%Y‘,‘%m/%d/%y‘]114 input_time_formats=None 格式列表:[‘%H:%M:%s‘,‘%H:%M:%s.%f‘,‘%H:%M‘]115 116 filePathFIEld(ChoiceFIEld) 文件选项,目录下文件显示在页面中117 path,文件夹路径118 match=None,正则匹配119 recursive=False,递归下面的文件夹120 allow_files=True,允许文件121 allow_folders=False,允许文件夹122 required=True,123 Widget=None,124 label=None,125 initial=None,126 help_text=‘‘127 128 GenericIPAddressFIEld129 protocol=‘both‘,both,ipv4,ipv6支持的IP格式130 unpack_ipv4=False 解析ipv4地址,如果是::ffff:192.0.2.1时候,可解析为192.0.2.1, PS:protocol必须为both才能启用131 132 SlugFIEld(CharFIEld) 数字,字母,下划线,减号(连字符)133 ...134 135 UUIDFIEld(CharFIEld) uuID类型136 ...
2、Django内置插件如下:
Textinput(input)Numberinput(Textinput)Emailinput(Textinput)URLinput(Textinput)Passwordinput(Textinput)HIDdeninput(Textinput)Textarea(Widget)Dateinput(DateTimeBaseinput)DateTimeinput(DateTimeBaseinput)Timeinput(DateTimeBaseinput)CheckBoxinputSelectNullBooleanSelectSelectMultipleRadioSelectCheckBoxSelectMultiplefileinputClearablefileinputMultipleHIDdeninputSplitDateTimeWidgetSplitHIDdenDateTimeWidgetSelectDateWidget
3、常用选择插件
# 单radio,值为字符串# user = fIElds.CharFIEld(# initial=2,# Widget=Widgets.RadioSelect(choices=((1,‘上海‘),(2,‘北京‘),))# ) # 单radio,值为字符串# user = fIElds.ChoiceFIEld(# choices=((1,),# initial=2,# Widget=Widgets.RadioSelect# ) # 单select,值为字符串# user = fIElds.CharFIEld(# initial=2,# Widget=Widgets.Select(choices=((1,))# ) # 单select,值为字符串# user = fIElds.ChoiceFIEld(# choices=((1,# Widget=Widgets.Select# ) # 多选select,值为列表# user = fIElds.MultipleChoiceFIEld(# choices=((1,# initial=[1,],# Widget=Widgets.SelectMultiple# ) # 单checkBox# user = fIElds.CharFIEld(# Widget=Widgets.CheckBoxinput()# ) # 多选checkBox,值为列表# user = fIElds.MultipleChoiceFIEld(# initial=[2,# choices=((1,# Widget=Widgets.CheckBoxSelectMultiple# )总结
以上是内存溢出为你收集整理的Form组件归类全部内容,希望文章能够帮你解决Form组件归类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)