当前位置: 首页 > news >正文

网站服务器查询加盟项目

网站服务器查询,加盟项目,网络空间搜索引擎,网站建设搞笑广告词django表单#xff1a; 渲染表单模板。表单验证数据是否合法。 在App中新建的form.py表单文件#xff1a; 1 from django import forms2 from django.core import validators3 from .models import User4 5 # 定义form表单#xff0c;label:定义名字#xff1b;error_messa… django表单 渲染表单模板。表单验证数据是否合法。   在App中新建的form.py表单文件 1 from django import forms2 from django.core import validators3 from .models import User4 5 # 定义form表单label:定义名字error_messages:定义错误时内容的提示例16 class MesssageBoardForm(forms.Form):7 title forms.CharField(max_length10,min_length2,label标题,error_messages{min_length:最小不能少于两个字符,max_length:不能超过十个字符})8 content forms.CharField(widgetforms.Textarea,label内容,error_messages{required:必须传content字段})9 email forms.EmailField(label邮箱,error_messages{required:必须传email字段}) 10 reply forms.BooleanField(requiredFalse,label是否回复) 11 12 # 可简化出错信息显示的内容通用。 13 class BaseForm(forms.Form): 14 def get_errors(self): 15 errors self.errors.get_json_data() 16 new_errors {} 17 for key,message_dicts in errors.items(): 18 messages [] 19 for message_dict in message_dicts: 20 message message_dict[message] 21 messages.append(message) 22 new_errors[key] messages 23 return new_errors 24 25 # 进行注册信息的简单验证表单例2 26 class RegisterForm(BaseForm): 27 username forms.CharField(max_length20,min_length2) 28 telephone forms.CharField(validators[validators.RegexValidator(r1[345678]\d{9},message请输入正确的手机号码)]) 29 pwd1 forms.CharField(max_length16,min_length6,error_messages{max_length:不能超过十六个字符,min_length:不能小于六个字符}) 30 pwd2 forms.CharField(max_length16,min_length6,error_messages{max_length:不能超过十六个字符,min_length:不能小于六个字符}) 31 32 def clean_telephone(self): 33 telephone self.cleaned_data.get(telephone) 34 exists User.objects.filter(telephonetelephone).exists() 35 if exists: 36 raise forms.ValidationError(message%s已经被注册%telephone) 37 return telephone 38 39 def clean(self): 40 cleaned_data super().clean() 41 pwd1 cleaned_data.get(pwd1) 42 pwd2 cleaned_data.get(pwd2) 43 if pwd1 ! pwd2: 44 raise forms.ValidationError(message两次密码不一致)   视图文件 1 from django.shortcuts import render2 from django.views.generic import View3 from .forms import MesssageBoardForm,RegisterForm4 from django.http import HttpResponse5 from .models import User6 7 # 简单的表格格式例18 class IndexView(View):9 # 将form传给html模板来生成一个表单的html代码 10 # 使用form生成的代码填写格式与验证不对时会先提示不运行 11 def get(self,request): 12 form MesssageBoardForm() 13 return render(request,index.html,context{form:form}) 14 15 # post提交时使用form.is_valid判断提交的内容与form中定义的是否一致 16 # cleaned_data获取相应数据 17 def post(self,request): 18 form MesssageBoardForm(request.POST) 19 if form.is_valid(): 20 title form.cleaned_data.get(title) 21 content form.cleaned_data.get(content) 22 email form.cleaned_data.get(email) 23 reply form.cleaned_data.get(reply) 24 print(title) 25 print(content) 26 print(email) 27 print(reply) 28 return HttpResponse(success) 29 else: 30 # 打印出错的详细内容 31 print(form.errors.get_json_data()) 32 return HttpResponse(Fail) 33 34 # 注册信息的验证例2 35 class RegisterView(View): 36 # 返回注册页面模板 37 # 不使用form的表单生成的代码验证不对时仍会运行没有预先提示 38 def get(self,request): 39 return render(request,register.html) 40 41 # 提交注册的数据 42 def post(self,request): 43 form RegisterForm(request.POST) 44 # 验证通过 45 if form.is_valid(): 46 username form.cleaned_data.get(username) 47 telephone form.cleaned_data.get(telephone) 48 User.objects.create(usernameusername,telephonetelephone) 49 return HttpResponse(注册成功) 50 else: 51 print(form.errors.get_json_data()) 52 # 调用了BaseFrom模板后简化的出错信息 53 print(form.get_errors()) 54 return HttpResponse(注册失败)   例1模板 1 {# 简单的index.html模板 #}2 form action methodpost3 table4 {{ form.as_table }}5 tr6 td/td7 tdinput typesubmit value提交/td8 /tr9 /table 10 /form   例2模板 1 {# 注册验证的模板 register.html #}2 form action methodpost3 table4 tr5 td用户/td6 tdinput typetext nameusername/td7 /tr8 tr9 td电话/td 10 tdinput typetext nametelephone/td 11 /tr 12 tr 13 td密码/td 14 tdinput typepassword namepwd1/td 15 /tr 16 tr 17 td重复密码/td 18 tdinput typepassword namepwd2/td 19 /tr 20 tr 21 td/td 22 tdinput typesubmit value提交/td 23 /tr 24 /table 25 /form   例2 models.py 1 from django.db import models 2 3 class User(models.Model): 4 username models.CharField(max_length20) 5 telephone models.CharField(max_length11)   url映射 1 urlpatterns [ 2 path(, views.IndexView.as_view()), 3 path(register/,views.RegisterView.as_view())     ModelForm   在表单中使用 ModelForm 定义一个 Meta 类如在该类中指定 modelUser 以及 fields__all__ 等于将 User 模型中所有的字段都复制过来进行验证。则不需要在表单中重复模型中已有的字段减少代码。 models.py文件 1 from django.db import models 2 from django.core import validators 3 4 class User(models.Model): 5 username models.CharField(max_length100,validators[validators.MinLengthValidator(2)]) 6 password models.CharField(max_length16,validators[validators.MinLengthValidator(6)]) 7 telephone models.CharField(max_length11,validators[validators.RegexValidator(r1[345678]\d{9})])     forms.py文件 1 from django import forms2 from .models import User3 4 # 注册信息的验证5 class BaseForm(forms.ModelForm):6 # 验证手机号是否存在7 def clean_telephone(self):8 telephone self.cleaned_data.get(telephone)9 exists User.objects.filter(telephonetelephone).exists() 10 if exists: 11 raise forms.ValidationError(%s手机号已存在 % telephone) 12 return telephone 13 14 # 验证用户名 15 def clean_username(self): 16 username self.cleaned_data.get(username) 17 exists User.objects.filter(usernameusername).exists() 18 if exists: 19 raise forms.ValidationError(%s:用户名已被注册 % username) 20 return username 21 22 # 验证密码 23 def clean(self): 24 cleaned_data super().clean() 25 pwd1 cleaned_data.get(pwd1) 26 pwd2 cleaned_data.get(pwd2) 27 if pwd1 ! pwd2: 28 raise forms.ValidationError(两次密码不一样) 29 else: 30 return cleaned_data 31 32 # 定义一个Meta类 33 class RegisterForm(BaseForm): 34 pwd1 forms.CharField(max_length16,min_length6,error_messages{min_length:不能小于6字符,max_length:不能大于16字符}) 35 pwd2 forms.CharField(max_length16,min_length6,error_messages{min_length:不能小于6字符,max_length:不能大于16字符}) 36 37 class Meta: 38 model User 39 # fields [username,telephone] # 只提取某些字段 40 # fields __all__ # 复制所有的字段 41 exclude [password] # 排除某个字段 42 # 使用“errors_messages”定义错误信息 43 error_messages { 44 username:{ 45 max_length:不能超过100字符, 46 min_length:不能小于2字符 47 }, 48 telephone:{ 49 invalid:请输入正确的手机号码 50 } 51 }     views.py文件 1 from django.shortcuts import render2 from django.http import HttpResponse3 from .forms import RegisterForm4 from django.views.decorators.http import require_POST5 6 # 验证完成可直接调用save方法“commitFalse”只生成模型而不插入到数据库中7 require_POST8 def register(request):9 form RegisterForm(request.POST) 10 if form.is_valid(): 11 user form.save(commitFalse) 12 user.password form.cleaned_data.get(pwd1) 13 user.save() 14 return HttpResponse(success) 15 else: 16 print(form.errors.get_json_data()) 17 return HttpResponse(Fail)   转载于:https://www.cnblogs.com/liqiongming/p/10665659.html
http://www.dnsts.com.cn/news/92337.html

相关文章:

  • 滨海做网站公司南通住房和城乡建设厅网站首页
  • 网站建设程序编制金华手机建站模板
  • 织梦医院网站开发乐华网络公司联系方式
  • php网站开发工程师招聘要求1688做网站多少钱
  • 中国建造师官方网站华亭网站建设
  • 特产网站建设的目的家居商城网站模板
  • 网站经营中装建设集团网站
  • 网站和域名区别吗禅城网站制作
  • 网站建设控制如何创造一个网站
  • 家禽养殖公司网站怎么做wordpress的友情链设置
  • 旅游网站的建设的意义网页美工设计流程为
  • 库尔勒网站建设推广黑色wordpress主题
  • 设计网站 问题做网站主页图片一般多少m
  • 定州网站建设电话腾讯云 配置wordpress
  • 苏州网络公司建网站南昌做网站的
  • 曲靖网站推广沈阳招聘网官网
  • 快刷网站跨境电商多平台运营
  • 荣盛科技网站建设网站开发写好了怎么发布
  • 常德网站制作公司多少钱wordpress 企业主页
  • 南昌建设厅网站微信网站设计价格
  • 横山专业做网站建设的公司苏州建筑工程集团有限公司
  • 做微博分析的网站淘宝网淘我喜欢
  • 网站建设用处做电视的视频网站
  • 网站建设怎么入会计账廊坊企业网站建设
  • 网站开发服务器框架莱芜民生网站
  • 淘宝的好券网站怎么做网页设计师简历模板
  • 石家庄网站建设找汉狮阿里云 wordpress 安装
  • 响应式网站下载自己做的网站可以发布吗
  • 成都专业网站建设厂站酷高高手
  • 网站首页备案号链接南宁公司网站设计