创建组件“ovalshape”失败_Django的forms组件检验字段\渲染模板
Ⅰ forms组件介绍
- 注册功能,登录功能,前端需要校验(字段长度,邮箱是否合法....)
- 前端校验可以没有,后端校验是必须的,使用传统方式 if判断写的很多
- 借助于forms组件,可以快速实现字段的校验
- 导入:from django.forms import Form
Ⅱ forms校验字段功能
- 自定义校验的字段及校验的方式
# 自定义校验
class RegisteredForm(forms.Form):name = forms.CharField(max_length=32,min_length=3) # 最长,32,最短 3password1 = forms.CharField(max_length=32,min_length=8,label='模板渲染使用')password2 = forms.CharField(max_length=32,min_length=8)pass
- 视图函数中使用
- from app01.view import src # 自定义校验,导入
- 数据校验成功的情况
data={'name':'wot','password1':'333334444','password2':'333334444'}form=src.RegisteredForm(data)if form.is_valid():print('校验通过')print('我是通过的数据',form.cleaned_data)
- 数据校验失败的情况
data={'name':'wot','password1':'333','password2':'333334444'}form=src.RegisteredForm(data)if form.is_valid():print('校验通过')print('我是通过的数据',form.cleaned_data) # 不一定是上面传入的数据else:print('我是校验失败后,校验成功的数据',form.cleaned_data)# 哪个字段失败了?失败的原因是什么print('我是失败的信息,默认ul标签格式',form.errors)from django.forms.utils import ErrorDict#### 重写了__str__print('json格式的失败信息',form.errors.as_json())print('字典格式的错误信息',form.errors.as_data())# form.errors.as_ul() # 是为了渲染模板return HttpResponse('ok')
Ⅲ forms渲染模板功能
- 视图函数
def register(request):if request.method == 'GET':form = src.RegisteredForm()return render(request, 'register.html', {'form': form})elif request.method == 'POST':# 数据校验form = src.RegisteredForm(request.POST)if form.is_valid():print('校验通过,存数据库')else:print(form.errors.as_data())print('校验失败,返回错误')return HttpResponse('ok')
- 模板
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<hr>
<h1>手动创建模板</h1>
<form action="" method="post"><p>用户名:<input type="text" name="name"></p><p>密码:<input type="text" name="password1"></p><p>确认密码:<input type="text" name="password2"></p><p><input type="submit" value="提交"></p>
</form><hr>
<h1>半自动渲染模板1</h1>
<form action="" method="post"><p>用户名:{{ form.name }}</p><p>密码:{{ form.password1 }}</p><p>确认密码:{{ form.password2 }}</p><p><input type="submit" value="提交"></p>
</form><h1>半自动渲染模板2(用的最多)</h1>
<form action="" method="post"><p>{{ form.name.label }}--{{ form.name }}</p> // label需要在自定义的字段参数写上<p>{{ form.password2.label }}---{{ form.password2 }}</p><p>{{ form.password1.label }}---{{ form.password1 }}</p><p><input type="submit" value="提交"></p>
</form><h1>半自动渲染模板3(用的最多)</h1>
<form action="" method="post">{% for foo in form %}<p>{{ foo.label }} :{{ foo }}</p>{% endfor %}<p><input type="submit" value="提交"></p>
</form><h1>全自动(了解)</h1>
<form action="" method="post">
{# {{ form.as_ul }}#}{{ form.as_p }}
{# <table>#}
{# {{ form.as_table }}#}
{# </table>#}<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
创建组件“ovalshape”失败_Django的forms组件检验字段\渲染模板相关推荐
- markdownpad2 html渲染组件出错_Day68 Django forms组件
目录 forms组件 forms组件类书写 forms组件如何校验数据 forms组件如何渲染标签 forms组件展示错误信息 forms组件钩子函数(HOOK) forms组件常见参数 forms组 ...
- Auth模块、Forms组件
Auth模块 auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这 ...
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
关于COM类工厂80070005和8000401a错误分析及解决办法 我的笔记 问题描述:最近做一个web应用程序需要操作Excel文件,在开发环境下程序测试正常,部署到IIS后程序操作Excel文件 ...
- 严重: 所必需的服务组件启动失败,所以无法启动Tomcat,eclipse:org.apache.catalina.startup.Catalina start
严重:所必需的服务组件启动失败,所以无法启动Tomcat org.apache.catalina.LifecycleException:子容器启动失败 at org.apache.catalina.c ...
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败解决方法
最近在处理一个项目时使用到了在word中写入信息的功能,由于系统原来就支持在线打印功能,使用了PageOffice,于是就研究了一下PageOffice,发现Pageoffice不能满足自己的功能(或 ...
- django框架——sweetalert前端插件、序列化组件、批量数据操作、分页器、Forms组件(上)
系列文章目录 第一章 django安装与介绍 第二章 django基础使用 第三章 路由层 第四章 虚拟环境.django版本区别.视图层 第五章 模板层 第六章 模型层(上) 第七章 模型层(下) ...
- 64位win7安装vs2010出现“组件安装失败...”等问题的解决方法
如题,公司发了新电脑,安装的是64位win7 ,我原来的本本安装的是32位的win7,当时安装vs2010的时候并没有那么多事,这次安装却真是让我蛋疼至极. 先后下了3个vs的安装包,中文版的,有专业 ...
- 解决Office互操作错误检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005...
Excel为例(其他如Word也适用)文件数据导入时报出以下错误: 检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是 ...
- 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败
检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 当在ASP.NET应用程序中引 ...
最新文章
- Google Chrome插件导出与安装
- linux set include path,set_include_path()的用法
- linux查看网卡速率
- 脚本语言语言脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua
- [20160201]db_link与子光标问题.txt
- Linux学习笔记-调用pthead_create创建线程
- 【直观理解】粒子滤波 原理及实现
- c中static的含义
- php宠物管理系统的开题报告,宠物医院管理系统的设计与实现开题报告.doc
- 程序员的超大文件下载方法
- 什么是数据库连接池?为什么使用数据库连接池?数据库连接池工作原理
- 5种类型的图像注释简介
- 达梦误删除表空间文件恢复
- NI无线通信与射频技术学习资源汇总
- 云栖大会上宣布即将开源的手淘Atlas什么来头?
- 【以终为始】接到需求任务,你要先做哪件事?
- 数据结构之字符串匹配算法(BF算法和KMP算法)
- GridSearch Kfold cross validation
- mysql账单结算设计_支付系统的对账处理与设计--转
- 同工作组的计算机无法访问,win7系统工作组计算机无法访问的解决方法
热门文章
- 微信小程序_(校园视)开发视频的展示页_上
- JavaScript eval
- hadoop3.1.1 HA高可用分布式集群安装部署
- jQuery dataTables四种数据来源[转]-原文地址:http://xqqing79.iteye.com/blog/1219425
- mysql之count,max,min,sum,avg,celing,floor
- 多表关联更新,UPDATE FROM用法
- 添加Silverlight应用到HTML
- java如何排除多余的依赖_Maven依赖排除 禁止依赖传递 取消依赖的方法 去除jar包中的不想要的依赖关系...
- flask websocket json_Win10环境下使用Flask配合Celery异步推送实时/定时消息/2020年最新攻略...
- APP设计灵感|空白页空状态界面也可以这么设计