Ⅰ 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组件检验字段\渲染模板相关推荐

  1. markdownpad2 html渲染组件出错_Day68 Django forms组件

    目录 forms组件 forms组件类书写 forms组件如何校验数据 forms组件如何渲染标签 forms组件展示错误信息 forms组件钩子函数(HOOK) forms组件常见参数 forms组 ...

  2. Auth模块、Forms组件

    Auth模块 auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这 ...

  3. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

    关于COM类工厂80070005和8000401a错误分析及解决办法 我的笔记 问题描述:最近做一个web应用程序需要操作Excel文件,在开发环境下程序测试正常,部署到IIS后程序操作Excel文件 ...

  4. 严重: 所必需的服务组件启动失败,所以无法启动Tomcat,eclipse:org.apache.catalina.startup.Catalina start

    严重:所必需的服务组件启动失败,所以无法启动Tomcat org.apache.catalina.LifecycleException:子容器启动失败 at org.apache.catalina.c ...

  5. 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败解决方法

    最近在处理一个项目时使用到了在word中写入信息的功能,由于系统原来就支持在线打印功能,使用了PageOffice,于是就研究了一下PageOffice,发现Pageoffice不能满足自己的功能(或 ...

  6. django框架——sweetalert前端插件、序列化组件、批量数据操作、分页器、Forms组件(上)

    系列文章目录 第一章 django安装与介绍 第二章 django基础使用 第三章 路由层 第四章 虚拟环境.django版本区别.视图层 第五章 模板层 第六章 模型层(上) 第七章 模型层(下) ...

  7. 64位win7安装vs2010出现“组件安装失败...”等问题的解决方法

    如题,公司发了新电脑,安装的是64位win7 ,我原来的本本安装的是32位的win7,当时安装vs2010的时候并没有那么多事,这次安装却真是让我蛋疼至极. 先后下了3个vs的安装包,中文版的,有专业 ...

  8. 解决Office互操作错误检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005...

    Excel为例(其他如Word也适用)文件数据导入时报出以下错误: 检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是 ...

  9. 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败

    检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 当在ASP.NET应用程序中引 ...

最新文章

  1. Google Chrome插件导出与安装
  2. linux set include path,set_include_path()的用法
  3. linux查看网卡速率
  4. 脚本语言语言脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua
  5. [20160201]db_link与子光标问题.txt
  6. Linux学习笔记-调用pthead_create创建线程
  7. 【直观理解】粒子滤波 原理及实现
  8. c中static的含义
  9. php宠物管理系统的开题报告,宠物医院管理系统的设计与实现开题报告.doc
  10. 程序员的超大文件下载方法
  11. 什么是数据库连接池?为什么使用数据库连接池?数据库连接池工作原理
  12. 5种类型的图像注释简介
  13. 达梦误删除表空间文件恢复
  14. NI无线通信与射频技术学习资源汇总
  15. 云栖大会上宣布即将开源的手淘Atlas什么来头?
  16. 【以终为始】接到需求任务,你要先做哪件事?
  17. 数据结构之字符串匹配算法(BF算法和KMP算法)
  18. GridSearch Kfold cross validation
  19. mysql账单结算设计_支付系统的对账处理与设计--转
  20. 同工作组的计算机无法访问,win7系统工作组计算机无法访问的解决方法

热门文章

  1. 微信小程序_(校园视)开发视频的展示页_上
  2. JavaScript eval
  3. hadoop3.1.1 HA高可用分布式集群安装部署
  4. jQuery dataTables四种数据来源[转]-原文地址:http://xqqing79.iteye.com/blog/1219425
  5. mysql之count,max,min,sum,avg,celing,floor
  6. 多表关联更新,UPDATE FROM用法
  7. 添加Silverlight应用到HTML
  8. java如何排除多余的依赖_Maven依赖排除 禁止依赖传递 取消依赖的方法 去除jar包中的不想要的依赖关系...
  9. flask websocket json_Win10环境下使用Flask配合Celery异步推送实时/定时消息/2020年最新攻略...
  10. APP设计灵感|空白页空状态界面也可以这么设计