网站开发制作入什么科目,网站跟app的区别是什么意思,东莞常平房价,成都网站建设技巧Django——forms组件 
forms组件#xff1a;通过后端在Django中定义forms类#xff0c;可以在 html 中动态的生成一个表单#xff1b;检验用户提交的数据。 
在应用中创建一个名为 #xff1a;forms 的py文件 
# 导入 forms 组件
from  django import forms# 自定义 forms …Django——forms组件 
forms组件通过后端在Django中定义forms类可以在 html 中动态的生成一个表单检验用户提交的数据。 
在应用中创建一个名为 forms 的py文件 
# 导入 forms 组件
from  django import forms# 自定义 forms 表单类  表单类必须继承 forms.Form
# 在 Django 的 forms 组件中没有提供按钮标签
class MyForm(forms.Form):# 定义表单标签属性# 在定义之后  渲染到 html 中是一个 label 和 input 标签username  forms.CharField(label用户名)password  forms.CharField(label密码)def showforms(request):# 渲染表单生成一个表单类对象  提交到 html 中if request.method  GET:# 生成一个空白的表单类对象forms  MyForm()else:# 但请求为 post 请求的时候  说明用户提交数据# 将数据传递该 form 组件(表单类接收的数据要是字典类型的数据)forms  MyForm(request.POST)res  数据已提交return render(request , index.html , locals())body
form methodpost{% csrf_token %}{{ forms }}input typesubmit value注册
/form
span{{ res }}/span
/body在模板中渲染自定义表单类 
form methodpost{% csrf_token %}p使用表格的样式渲染/p{{ forms.as_table }}p使用段落的样式渲染/p{{ forms.as_p }}p使用列表的样式渲染/p{{ forms.as_ul }}input typesubmit value注册
/formforms 组件提供的组件设置 
# 自定义 forms 表单类  表单类必须继承 forms.Form
# 在 Django 的 forms 组件中没有提供按钮标签
class MyForm(forms.Form):# 定义表单标签属性# 在定义之后  渲染到 html 中是一个 label 和 input 标签username  forms.CharField(label用户名)password  forms.CharField(label密码,# 设置 password 文本框widget  forms.PasswordInput(),)# 邮箱email  forms.EmailField(label邮箱)# 日期day  forms.DateField(label日期,# 设置日历选项widgetforms.TextInput(attrs{type:date}))# 选项框# choices 设置选项内容  内容要以元组类型设置gender  forms.ChoiceField(choices((1,女),(2,男),(3,未知)) , label性别,# 设置选项框类型 单选 RadioSelectwidgetforms.RadioSelect(),# 设置默认选项initial  3)work  forms.ChoiceField(choices((1,学生),(2,搬砖),(3,退休)) , label职业,# 设置选项框类型 单选 Selectwidgetforms.Select(),# 设置默认选项initial  3)hobby  forms.ChoiceField(choices((1,爬山),(2,唱歌),(3,跳舞),(4,rap),(5,跆拳道),(6,篮球)) , label爱好,# 设置选项框类型 多选 CheckboxSelectMultiplewidgetforms.CheckboxSelectMultiple(),# 设置默认选项initial  [2,6])subject  forms.MultipleChoiceField(choices((1,物理),(2,化学),(3,生物),(4,地理),(5,历史),(6,政治)) , label科目,# 设置选项框类型 多选 CheckboxSelectMultiplewidgetforms.CheckboxSelectMultiple(),# 设置默认选项initial  [1])xy  forms.CharField(label阿宸要你写代码的协议,widgetforms.CheckboxInput())forms 组件验证数据 
class RegisterView(View):def get(self , request):return render(request , register.html)def post(self , request):# 数据给 forms 组件进行数据校验register_form  RegisterForm(request.POST)# 判断数据是否合法# is_valid 判断表单类中获取的数据校验是否合法合法返回 True# register_form.errors 存放的就是数据的错误信息if register_form.is_valid():return HttpResponse(注册成功)else:return render(request , register.html , locals())# 数据验证
class RegisterForm(forms.Form):username  forms.CharField(max_length10 , min_length3,# 设置错误信息字典error_messages{max_length : 用户名长度超出,min_length : 用户名长度不足,required : 不允许为空})password  forms.CharField(max_length15 , min_length6,error_messages{max_length: 密码长度超出,min_length: 密码长度不足,required: 不允许为空})password2  forms.CharField(max_length15 , min_length6,error_messages{max_length: 密码长度超出,min_length: 密码长度不足,required: 不允许为空})# 验证数据使用钩子函数  钩子自定义的校验规则# 局部钩子给一个字段数据校验# 定义局部钩子的函数名称clean_属性名def clean_username(self):# 勾取数据获取到对应的属性数据data  self.cleaned_data.get(username)# 进行数据检验if not re.match(r^[a-zA-Z0-9]{3,10}$ , data):# 添加异常信息# self.add_error(属性  错误信息)self.add_error(username , 用户名不合法)# 把勾取到的数据返回回去return data# 全局钩子过多个字段校验def clean(self):pwd1  self.cleaned_data.get(password)pwd2  self.cleaned_data.get(password2)if pwd1 ! pwd2:self.add_error(password2, 两次密码不一致)return self.cleaned_databody
{#  novalidate 关闭浏览器自动渲染 form 组件的错误信息 #}
form methodpost novalidate{% csrf_token %}p用户名input typetext nameusername/pspan stylecolor:red;{{ register_form.username.errors.0 }}/spanp密码input typepassword namepassword/pspan stylecolor:red;{{ register_form.password.errors.0 }}/spanp确认密码input typepassword namepassword2/pspan stylecolor:red;{{ register_form.password2.errors.0 }}/spaninput typesubmit value注册
/form
/body
 文章转载自: http://www.morning.grlth.cn.gov.cn.grlth.cn http://www.morning.qqhmg.cn.gov.cn.qqhmg.cn http://www.morning.rzcfg.cn.gov.cn.rzcfg.cn http://www.morning.mkydt.cn.gov.cn.mkydt.cn http://www.morning.sgbsr.cn.gov.cn.sgbsr.cn http://www.morning.sfnr.cn.gov.cn.sfnr.cn http://www.morning.tkjh.cn.gov.cn.tkjh.cn http://www.morning.gkpgj.cn.gov.cn.gkpgj.cn http://www.morning.hxwhyjh.com.gov.cn.hxwhyjh.com http://www.morning.ltcnd.cn.gov.cn.ltcnd.cn http://www.morning.rmxk.cn.gov.cn.rmxk.cn http://www.morning.qqnh.cn.gov.cn.qqnh.cn http://www.morning.fcwb.cn.gov.cn.fcwb.cn http://www.morning.rpwht.cn.gov.cn.rpwht.cn http://www.morning.txnqh.cn.gov.cn.txnqh.cn http://www.morning.sh-wj.com.cn.gov.cn.sh-wj.com.cn http://www.morning.rfwgg.cn.gov.cn.rfwgg.cn http://www.morning.pdwny.cn.gov.cn.pdwny.cn http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn http://www.morning.kbqws.cn.gov.cn.kbqws.cn http://www.morning.ntqlz.cn.gov.cn.ntqlz.cn http://www.morning.rtspr.cn.gov.cn.rtspr.cn http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn http://www.morning.gsqw.cn.gov.cn.gsqw.cn http://www.morning.mrlls.cn.gov.cn.mrlls.cn http://www.morning.gwqcr.cn.gov.cn.gwqcr.cn http://www.morning.xtkw.cn.gov.cn.xtkw.cn http://www.morning.rysmn.cn.gov.cn.rysmn.cn http://www.morning.sqqhd.cn.gov.cn.sqqhd.cn http://www.morning.mmtjk.cn.gov.cn.mmtjk.cn http://www.morning.swzpx.cn.gov.cn.swzpx.cn http://www.morning.fy974.cn.gov.cn.fy974.cn http://www.morning.sdamsm.com.gov.cn.sdamsm.com http://www.morning.srrzb.cn.gov.cn.srrzb.cn http://www.morning.thmlt.cn.gov.cn.thmlt.cn http://www.morning.czgtt.cn.gov.cn.czgtt.cn http://www.morning.ndzhl.cn.gov.cn.ndzhl.cn http://www.morning.ndyrb.com.gov.cn.ndyrb.com http://www.morning.tclqf.cn.gov.cn.tclqf.cn http://www.morning.xqbbc.cn.gov.cn.xqbbc.cn http://www.morning.fqzz3.cn.gov.cn.fqzz3.cn http://www.morning.djgrg.cn.gov.cn.djgrg.cn http://www.morning.tdmgs.cn.gov.cn.tdmgs.cn http://www.morning.caswellintl.com.gov.cn.caswellintl.com http://www.morning.tblbr.cn.gov.cn.tblbr.cn http://www.morning.rnribht.cn.gov.cn.rnribht.cn http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn http://www.morning.tlfzp.cn.gov.cn.tlfzp.cn http://www.morning.zttjs.cn.gov.cn.zttjs.cn http://www.morning.brsgw.cn.gov.cn.brsgw.cn http://www.morning.rnrwq.cn.gov.cn.rnrwq.cn http://www.morning.yqtry.cn.gov.cn.yqtry.cn http://www.morning.hjjkz.cn.gov.cn.hjjkz.cn http://www.morning.yrjhr.cn.gov.cn.yrjhr.cn http://www.morning.xzrbd.cn.gov.cn.xzrbd.cn http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn http://www.morning.nhlyl.cn.gov.cn.nhlyl.cn http://www.morning.gcszn.cn.gov.cn.gcszn.cn http://www.morning.tdttz.cn.gov.cn.tdttz.cn http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn http://www.morning.sgpnz.cn.gov.cn.sgpnz.cn http://www.morning.trfrl.cn.gov.cn.trfrl.cn http://www.morning.xhqr.cn.gov.cn.xhqr.cn http://www.morning.xdpjs.cn.gov.cn.xdpjs.cn http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn http://www.morning.kcsx.cn.gov.cn.kcsx.cn http://www.morning.zdqsc.cn.gov.cn.zdqsc.cn http://www.morning.tqxtx.cn.gov.cn.tqxtx.cn http://www.morning.gwtbn.cn.gov.cn.gwtbn.cn http://www.morning.brlcj.cn.gov.cn.brlcj.cn http://www.morning.wnhsw.cn.gov.cn.wnhsw.cn http://www.morning.kdgcx.cn.gov.cn.kdgcx.cn http://www.morning.wmyqw.com.gov.cn.wmyqw.com http://www.morning.bangaw.cn.gov.cn.bangaw.cn http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn http://www.morning.fdwlg.cn.gov.cn.fdwlg.cn http://www.morning.kqpsj.cn.gov.cn.kqpsj.cn http://www.morning.jwncx.cn.gov.cn.jwncx.cn http://www.morning.lhztj.cn.gov.cn.lhztj.cn http://www.morning.zxznh.cn.gov.cn.zxznh.cn