Django form表单

Posted weidaijie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django form表单相关的知识,希望对你有一定的参考价值。

form组件的主要功能:

  • 生成页面可用的html标签
  • 对用户提交的数据进行校验
  • 将校验结果返回至HTML 并且可以保留上次输入内容

使用form表单实现注册功能

1、导入form  

from django  import   forms

 2、定义一个form类

class Regform(forms.Form):
user = forms.CharField(max_length= 8,label=‘用户名‘)
pwd = forms.CharField(min_length=6,label=‘密码‘)

 3、实例化form对象,传导模板语言中

def reg(request):
    form_obj = Regform()
    return  render(request,‘reg.html‘,{‘form_obj‘:form_obj})

 4、在模板语言中调用form对象的响应方法和属性

对得到的只做校验。将值写入到数据库

form表单的常用字段和插件

初始值initial  input框里HTML里边默认的显示的值

class Regform(forms.Form):
    user = forms.CharField(max_length= 8,label=‘用户名‘,initial="小白")
    pwd = forms.CharField(min_length=6,label=‘密码‘)

 error_messages  重写错误信息

class Regform(forms.Form):
    user = forms.CharField(
        min_length= 8,
        label=‘用户名‘,
         error_messages={
            "required": "不能为空",
            "invalid": "格式错误",
            "min_length": "用户名最短8位"
        }
    )

    pwd = forms.CharField(min_length=6,label=‘密码‘)

 password    

from django.forms  import  widgets  #使用widgers插件生成HTML相关的设置
from django  import   forms
class Regform(forms.Form):
    user = forms.CharField(
        min_length= 8,
        label=‘用户名‘,
         error_messages={
            "required": "不能为空",
            "invalid": "格式错误",
            "min_length": "用户名最短8位"
        }
    )
    pwd = forms.CharField(
        min_length=6,
        label=‘密码‘,
        widget=widgets.PasswordInput(attrs={class‘: c1‘},render_value=True) #密码还是在输入框内
    )

 radioselect   单选

class Regform(forms.Form):
    user = forms.CharField(
        min_length=8,
        label=‘用户名‘,
        error_messages={
            "required": "不能为空",
            "invalid": "格式错误",
            "min_length": "用户名最短8位"
        }
    )
    pwd = forms.CharField(
        min_length=6,
        label=‘密码‘,
        widget=widgets.PasswordInput(attrs={‘class‘: ‘c1‘}, render_value=True)
    )
    gender = forms.fields.ChoiceField(
        choices=((1, "男"), (2, "女"), (3, "保密")),
        label="性别",
        initial=3,
        widget=forms.widgets.RadioSelect()
    )

 下拉框select的单选与多选

class Regform(forms.Form):
    hobby = forms.ChoiceField(
        choices=((1, "篮球"), (2, "足球"), (3, "双色球"),),
        label="爱好",
        initial=3,
        widget=forms.widgets.Select()
    )
    hobby2 = forms.MultipleChoiceField(
        choices=((1, "篮球"), (2, "足球"), (3, "双色球"),),
        label="爱好",
        initial=[1, 3],
        widget=forms.widgets.SelectMultiple()
    )

 checkbox的单选与多选

class Regform(forms.Form):
    hobby3 = forms.MultipleChoiceField(
        choices=((1, "篮球"), (2, "足球"), (3, "双色球"),),
        label="爱好",
        initial=[1, 3],
        widget=forms.widgets.CheckboxSelectMultiple()
    )

    keep = forms.ChoiceField(
        label="是否记住密码",
        initial="checked",
        widget=forms.widgets.CheckboxInput()
    )

 



以上是关于Django form表单的主要内容,如果未能解决你的问题,请参考以下文章

Django - forms.Form 无法保存当前用户并且表单有效但未保存

Django高级-Form表单组件应用

Django中的form表单

使用Ajax验证并提交Django表单(django-crispy-forms)

django 模板中的表单字段

django form表单组建使用及CBV模式