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 无法保存当前用户并且表单有效但未保存