小金鱼呀 python-django-初识Form组件(Form类)

Django内置字段:

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                   是否移除用户输入空白

 1 user = fields.CharField(
 2         required=True, # 是否必填
 3         max_length=12, # 最大长度
 4         min_length=3,  # 最小长度
 5         error_messages={}, # 错误提示
 6         #widget = widgets.Select(), # 定制HTML插件
 7         label=‘用户名‘,
 8         initial=‘请输入用户‘,
 9         help_text=‘asdfasdf‘,
10         show_hidden_initial=False,
11         # validators=[]
12         disabled=True,
13         label_suffix=‘->‘
14     )

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)            时间间隔:%%H:%M:%S.%f

    ...

RegexField(CharField)

    regex,                      自定制正则表达式

    max_length=None,            最大长度

    min_length=None,            最小长度

    error_message=None,         忽略,错误信息使用 error_messages={‘invalid‘‘...‘}

EmailField(CharField)      

    ...

1 img = fields.FileField()

FileField(Field)

    allow_empty_file=False     是否允许空文件

ImageField(FileField)      

    ...

    注:需要PIL模块,pip3 install Pillow

    以上两个字典使用时,需要注意两点:

        - form表单中 enctype="multipart/form-data"

        - view函数中 obj = MyForm(request.POST, request.FILES)

URLField(Field)

    ...

BooleanField(Field)  

    ...

NullBooleanField(BooleanField)

    ...

ChoiceField(Field)               单选

    ...

    choices=(),                选项,如:choices = ((0,‘上海‘),(1,‘北京‘),)

    required=True,             是否必填

    widget=None,               插件,默认select插件

    label=None,                Label内容

    initial=None,              初始值

    help_text=‘‘,              帮助提示

1  city = fields.ChoiceField(
2
3          choices=[(1,‘上海‘,),(2,‘北京‘),(3,‘沙河‘),],
4          initial=2
5      )

ModelChoiceField(ChoiceField)

    ...                        django.forms.models.ModelChoiceField

    queryset,                  # 查询数据库中的数据

    empty_label="---------",   # 默认空显示内容

    to_field_name=None,        # HTML中value的值对应的字段

    limit_choices_to=None      # ModelForm中对queryset二次筛选

    

ModelMultipleChoiceField(ModelChoiceField)

    ...                        django.forms.models.ModelMultipleChoiceField

    

TypedChoiceField(ChoiceField)    对数据进行类型转换

    coerce = lambda val: val   对选中的值进行一次转换

    empty_value= ‘‘            空值的默认值

1 city = fields.TypedChoiceField(
2         coerce=lambda x: int(x),     #转换为int类型
3         choices=[(1,‘上海‘,),(2,‘北京‘),(3,‘沙河‘),],
4         initial=2
5     )

MultipleChoiceField(ChoiceField)       多选

    ...

1 bobby = fields.MultipleChoiceField(
2         choices=[(1,‘刚娘‘),(2,‘铁娘‘),(3,‘钢弹‘)],
3         initial=[1,2]
4     )

TypedMultipleChoiceField(MultipleChoiceField)

    coerce = lambda val: val   对选中的每一个值进行一次转换

    empty_value= ‘‘            空值的默认值

ComboField(Field)                       使用多个验证

    fields=()                  使用多个验证,如下:即验证最大长度20,又验证邮箱格式

                               fields.ComboField(fields=[fields.CharField(max_length=20), fields.EmailField(),])

MultiValueField(Field)

    PS: 抽象类,子类中可以实现聚合多个字典去匹配一个值,要配合MultiWidget使用

SplitDateTimeField(MultiValueField)

    input_date_formats=None,   格式列表:[‘%Y--%m--%d‘‘%m%d/%Y‘‘%m/%d/%y‘]

    input_time_formats=None    格式列表:[‘%H:%M:%S‘‘%H:%M:%S.%f‘‘%H:%M‘]

FilePathField(ChoiceField)     文件选项,目录下文件显示在页面中

    path,                      文件夹路径

    match=None,                正则匹配

    recursive=False,           递归下面的文件夹

    allow_files=True,          允许文件

    allow_folders=False,       允许文件夹

    required=True,

    widget=None,

    label=None,

    initial=None,

    help_text=‘‘

GenericIPAddressField

    protocol=‘both‘,           both,ipv4,ipv6支持的IP格式

    unpack_ipv4=False          解析ipv4地址,如果是::ffff:192.0.2.1时候,可解析为192.0.2.1, PS:protocol必须为both才能启用

SlugField(CharField)           数字,字母,下划线,减号(连字符)

    ...

UUIDField(CharField)           uuid类型

    ...

原文地址:https://www.cnblogs.com/GodLv/p/9584545.html

时间: 2024-10-14 18:43:06

小金鱼呀 python-django-初识Form组件(Form类)的相关文章

Python Django 多对多三种创建方式 form组件 cookie和session

一 表中多对多关系三种创建方式 以Book表和Author表多对多关系例 1.第一种方式:全自动(推荐使用):models.ManyToManyField(to='类名') 优点:不需要你手动创建第三张表 缺点:第三张表不是你手动创建的,字段是固定的无法拓展 class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8,decimal_place

doraemon的python form组件(国庆大更新)

### 11.12 form组件 form组件的功能: 1. 生产input标签 2. 对提交的数据进行校验 3. 提供错误提示 定义form组件 ```python from django import forms class RegForm(forms.Form): username = forms.CharField() pwd = forms.CharField() ``` 使用的流程 视图 ```python form_obj = RegForm() form_obj = RegFor

Django 批量插入数据、自定义分页器、多表关系的建立及Form组件(待更新。。。)

目  录 django批量出入数据 自定义分页器 创建多对多表关系的建立 form组件 form组件钩子函数 一.django批量出入数据 视图函数: from app01 import models # 向表中插入1000条数据 def index(request): # 方式1: # for i in range(1000): # models.Book.objects.create(title='第%s本书'%i) # book_Queryset = models.Book.objects

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

[oldboy-django][2深入django]初始Form组件

http://www.cnblogs.com/wupeiqi/articles/6144178.html 1 初始Form组件 # Form验证(初始Form组件验证) - 问题: - 无法记住上次提交的内容,页面刷新数据消失 - 重复进行提交数据的校验(数据是否为空,长度大小等等) - 解决方法:django Form组件 - 定义规则(数据的格式,字段必须和表单上name属性一致) class LoginForm(Form): 实例化对象obj = LoginForm(request.POS

Django框架 之 form组件

浏览目录 Form介绍 普通的登录 使用form组件 Form详情 常用字段 校验 进阶 使用Django Form流程 一.Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确.如果用户输入的内容有错误就需要在页面上相应的位置显示显示对应的错误信息.. Django form组件就实现了上面所述的功能. 总结一下,其

Django【十三】form组件。

一.form组件 form组件的功能: 检验功能 前端生成HTML页面 还能保留输入的内容 form组件的用法: from django import forms # Create your views here. # 定义一个类 class Myform(forms.Form): title = forms.CharField( # 通过from表单进行验证的时候,验证输入title字段的数据,参数用于验证 max_length=20, min_length=2, ) # CharField/

Django—分页器与form组件

目录 分页器 现成分页器代码 如何使用 后端 前端 form组件 form 校验组件 使用校验组件与钩子函数 三种渲染方式 正则校验* 分页器 现成分页器代码 只需要会使用即可. 在Django项目下新建utils文件夹,新建一个py文件,放入封装好的分页器代码. class Pagination(object): def __init__(self, current_page, all_count, per_page_num=10, pager_count=11): """

Web框架之Django_08 重要组件(form组件、cookie和session组件)

摘要: form组件 cookie组件 session组件 一.form组件 form介绍我们之前在html页面中利用form表单向后端提交数据时候,都需要对用户的输入进行校验,比如校验用户是否输入正确(长度.格式...),如果用户输入的内容有误则需要在相应的位置显示对应的错误信息来提醒用户,提高前端的交互效率.Django form组件就是实现上述功能的一个功能组件.from组件主要功能有:# 生成页面可用的html标签# 对用户条件的数据进行校验# 保留上次输入内容 先来看看自己手写注册功能

form组件

一.form组件    1.- Form组件             - 创建类,继承Form            - 创建字段,字段=正则表达式: PS: 字段名称,required,  error_messages = {required,invalid}            - form = MyForm(data=request.POST)            - form.is_valid()            - form.cleaned_data            -