数据校验

Django --- 多对多关系创建,forms组件

白昼怎懂夜的黑 提交于 2019-12-06 11:39:32
目录 多对多三种创建方式 1.系统直接创建 2.自己手动创建 3.自己定义加与系统创建 forms组件 1. 如何使用forms组件 2. 使用forms组件校验数据 3. 使用forms组件渲染标签 4.使用forms组件展示信息 5. 禁止前端校验数据参数 5.1 报错信息修改:error_messages 5.2 正则校验器:RegexValidator 5.3 给input框设置样式及属性:widget 5.4 input框默认值:initial 5.5 控制字段是否必填:required 5.6 input对应的提示信息:label 6. 钩子函数 6.1 局部钩子 6.2 全局钩子 多对多三种创建方式 1.系统直接创建 在创建表的时候让系统来创建第三张表, 优点: 1.可以使用可以使用系统自带的增删改查 2.不用再手动去创建表 缺点: 1.创建出来的表没有办法进行修改,可扩展性太差了 authers = models.ManyToManyField(to='Auther') 2.自己手动创建 可以根据自己的需求来创建第三张表,创建表的时候最好时候一对多关系,对表中的数据进行约束,保证数据的可靠性。 优点: 1.创建出来的表可以按照自己的使用来进行修改 2.可扩展性高 缺点: 1.没有办法使用多表操作,可以使用一对多,一对一的方式来进行修改 2.不支持跨表查询 class

Vuetify笔记(6):v-form表单及校验

半城伤御伤魂 提交于 2019-12-06 11:19:43
在表单验证方面,Vuetify拥有集成了众多的功能,想要使用第三方验证插件?您可以开箱即用Vee-validate和Vuelidate。 1、v-form表单 1.1、v-form的属性和方法 v-form表单的常用属性: (1)lazy-validation:如果启用,value将永远是 true ,除非有可见的验证错误。您仍然可以调用validate()来手动触发验证;布尔类型,默认值为false。 (2)value :true,代表表单验证通过;false,代表表单验证失败;布尔类型,默认值为false。 v-form的常用方法 (1)validate:校验整个表单数据,前提是你写好了校验规则。返回Boolean表示校验成功或失败。 (2)reset:重置表单数据。 1.2、v-form案例 1、官网案例 <template> <v-form ref="form" v-model="valid" lazy-validation> <v-text-field v-model="name" :rules="nameRules" :counter="10" label="Name" required ></v-text-field> <v-text-field v-model="email" :rules="emailRules" label="E-mail" required >

[无心插柳]简单实现常用的表单校验函数

落爺英雄遲暮 提交于 2019-12-06 11:11:57
有意取而不得,失落而归。无意间有所获,未有喜悦,但珍惜依旧 1.前言 表单校验,相信绝大部分的开发者会遇到过,网上也有很多插件可使用。但当时想着就是简单的校验,没必要引插件,就自己写一个简单的函数。随着校验的需求多样化,函数越来越大。有点轮子的雏形,算是无心插柳吧。现在也该分享出来了,和大家交流交流。函数比较粗糙,如果大家有建议,评论留言吧。 1.关于实现的过程,原理都是参考了《JavaScript设计模式与开发实践》策略模式的一个例子。代码比较简单,大家移步到文末的链接,下载相关的文件,运行调试下就会知道是当中的奥秘了。这里就不做过多的介绍,只展示出可以应付哪些校验场景和使用的方法。 2.虽然我开发项目中会使用这个函数,但今天的文章,主要是出于分享和交流学习,介绍下这种表单校验的方式。目前函数比较粗糙,功能不够强大,待完善,在项目中使用要注意谨慎。 3.文章例子依赖 vue ,只为了方便展示,该函数为原生 js 函数。 2.表单校验的场景 首先,简单列举下表单校验的常用场景 2-1.基础数据校验 关于下面调用的规则:rule,全部封装在这个文件下面的 ruleData 这个变量这里。一看就知道怎么回事了。提供了常用的校验规则,需要的可以扩展。 调用代码 <div id="form-box"> <!--校验单个字段--> <div class="m-from-box"> <p>

表单校验的方法

心不动则不痛 提交于 2019-12-06 11:11:06
表单校验 Why:减轻服务器压力 保证输入的数据符合要求 常用表单验证 日期格式 表单元素是否为空 用户名和密码 mail地址 身份证号码 验证思路: 当数据不符合要求怎么编写脚本 : 获得表单元素值2.使用JavaScript的一些方法对数据进行判断3.当表单提交时,触发事件,对获取的数据进行验证 表单选择器: :input 匹配所有input textarea select button元素 $( “ #myform :input ” )选取表单中所有的input,select和button元素 :text 匹配所有单行文本框 $( “ #myform :text ” )选取email和姓名两个input元素 :password 匹配所有密码框 $( “ #myform :password ” )选取所有type=“password”元素 :radio 匹配所有单选按钮 $( “ #myform : radio ” )选取type=“radio”元素 :checkbox 匹配所有复选框 CheckBox :submit 匹配所有提交按钮 submit :image 图像域 image :reset 重置按钮 reset :button 按钮 选取button元素 :file 文件域 file :hidden 不可见元素,或者type为hidden的元素 $() 选取<input

Django 09

。_饼干妹妹 提交于 2019-12-06 11:06:08
目录 多对多三种创建方式 全自动 纯手撸 半自动(推荐) form组件 校验数据 渲染标签 展示错误信息 validators校验器 钩子函数 补充 多对多三种创建方式 全自动 ManyToManyField(to=) 优点: 无须自己创建多对多关系表, 支持orm跨表查询, 支持add, set, remove, clear方法 不足: 表的扩展性较差 class Book(models.Model): name = models.CharField(max_length=255) # 自动创建多对多关系表 authors = models.ManyToManyField(to='Author') class Author(models.Model): name = models.CharField(max_length=255) 纯手撸 优点: 字段完全由自己定义 不足: 不支持orm跨表查询, 不支持add, set, remove, clear方法 class Book(models.Model): name = models.CharField(max_length=255) class Author(models.Model): name = models.CharField(max_length=255) # 手动创建多对多关系表 class Book2Author

FORM组件 要点

只愿长相守 提交于 2019-12-06 11:05:52
多对多三种创建方式 1、全自动创建 class Book(models.Model): title = models.CharField(max_length=32) # 多对多关系字段 authors = models.ManyToManyField(to='Authors') class Authors(models.Model): name = models.CharField(max_length=32) 好处:至始至终不用操作第三张表,全都是由ORM自动创建 ​ 内置的第三张表的方法:add、remove、set、clear 缺点:第三张表是自动创建的,无法扩展字段,扩展性差 2、纯手撸 class Book(models.Model): title = models.CharField(max_length=32) class Authors(models.Model): name = models.CharField(max_length=32) class Book2Authors(models.Model): book = models.ForeignKey(to="Book") author = models.ForeignKey(to="Authors") create_time = models.DateField(auto_now_add = True)

Django之Form组件

馋奶兔 提交于 2019-12-06 10:59:28
一、Form介绍 普通方式手写注册功能 views.py def register(request): error_msg="" if request.method=="POST": username = request.POST.get("name") pwd = request.POST.get('pwd') #对注册信息做校验 if len(username)<6: error_msg="用户名长度不能小于6位" else: #可以用户名和密码存在数据库 return HttpResponse("注册成功") return render(request,"register.html",{'error_msg':error_msg}) register.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册页面</title> </head> <body> <form action="/reg/" method="post"> {% csrf_token %} <p> 用户名: <input type="text" name="name"> </p> <p> 密码: <input type="password" name="pwd"> </p> <p> <input type=

forms组件

删除回忆录丶 提交于 2019-12-06 10:58:51
目录 forms组件 手动书写需求 使用forms组件校验数据 forms组件渲染标签 1. 方式一 2. 方式二 3.方式三 forms组件展示信息 form组件自定义校验 RegexValidator验证器 钩子函数 (HOOK) 全局钩子 局部钩子 forms组件补充知识点 其他字段参数 error_messages password radioSelect 单选Select 多选Select 单选checkbox 多选checkbox choice字段注意事项 forms组件 先抛出一个需求: 1.写一个注册功能,获取用户输入的用户名和密码,提交到后端,后端做校验 2.用户名里面不能含有敏感信息,给出相应的提示 3.如果密码小于三位,就提示用户 手动书写需求 views.py def register(request): errors = {'username':'', 'password':''} if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') if 'zf' in username: errors['username'] = '不能使用该字符' if len(password) < 4: errors[

django----多对多三种创建方式 form组件

半城伤御伤魂 提交于 2019-12-06 10:58:17
目录 多对多三种创建方式 全自动 全手动 半自动 form组件 基本使用 form_obj 及 is_valid() 前端渲染方式 取消前端自动校验 正则校验 钩子函数(Hook方法) cleaned_data 主动抛错误信息 局部钩子 全局钩子 多选框(了解知识点) radioSelect 单选Select 多选Select 单选checkbox 多选checkbox 多对多三种创建方式 全自动 class Book(models.Model): title = models.CharField(max_length=255) # 多对多关系字段 authors = models.ManyToManyField(to='Authors') class Authors(models.Model): name = models.CharField(max_length=32) ​ 好处:自始至终都没有操作第三张表 全部都是 orm 自动帮你创建的 且内置 4个方法 操作第三张表 add set remove clear ​ 不足: 自动创建的第三张表 无法扩展 和 字段修改 扩展性较差 全手动 class Book(models.Model): title = models.CharField(max_length=255) class Authors(models.Model):

Django(九)

倖福魔咒の 提交于 2019-12-06 10:56:15
目录 Django(九)---多对多的创建方式,horm组件 多对多表创建方式 全自动 纯手写 半自动 form组件 校验数据 渲染标签 展示信息 内置的校验器 勾子函数 校验密码 确认密码是否一致 全局钩子 补充知识点 Django(九)---多对多的创建方式,horm组件 多对多表创建方式 全自动 通过Django中的orm,只要定义好表类,orm就对自动创建多对多的表关系,自动建立第三张表,并且还可以通过 add remove set clear 对第三张表进行操作 缺点: ​ 因为第三张表是自动创建的,所以该表无法扩展和自定义字段,标的扩展性较差 class Book(models.Model): title = models.CharField(max_length=32) # 多对多关系字段 authors = models.ManyToManyField(to='Authors') class Authors(models.Model): name = models.CharField(max_length=32) 纯手写 通过模型表类,手动创建第三张关系表 通过手动建立第三张关系表,该表中的字段个数和字段名称都可以实现自定义 缺点: ​ 自定义的第三张表,不能支持orm的跨表查询,也没有正反查询的概念 class Book(models.Model): title