数据校验

用户注册(二)之用户信息校验

只谈情不闲聊 提交于 2020-03-21 08:13:43
五、用户名校验是否注册   1. 接口设计     1)接口说明           (?pgroup)这个格式的意思,在正则中是指给匹配到的group组名命名一个名称,且该名称是唯一的          例如:(?p\d{4}) 是匹配带有4个数字的,             (?p\w{4}) 是匹配带有4个字母的。      \w{5,20} 则代表我们输入的字母需要是5~20位数字的。     2)返回数据        返回结果为json数据: { "errno": 0 , "errmsg": "OK", "data": { "username":"username", # 查询用户名 "count": 1 # 用户查询数量 }, }   2. 后端代码     1)检查用户名是否注册的后端视图(first_project------>apps----->verivication----->view.py)         # 一、系统模块 import logging # 记录日志我们需要导入日志模块 # 二、django模块 from django.shortcuts import render # django渲染页面模块 from django.http import HttpResponse, JsonResponse # django的响应模块

vue + element 文件上传及校验

China☆狼群 提交于 2020-03-18 17:17:30
上传文件 后台需要 formate 进行上传,中间遇到一点小插曲 先贴大佬地址 https://www.cnblogs.com/fmixue/p/9968910.html 发现 不用自己定义请求方式,和修改请求头里面的content-type:"multipart/form-data" 直接在action里写请求地址,element貌似默认是post请求,并且默认转为了FormData方式 on-success 事件 handleAvatarSuccess(res,file,fileList){ res是请求回来的数据 file是文件信息 fileList是请求文件列表 } 文件上传验证 首先在el-form-item 绑定好prop="imgUpload" 并且 ref="xxx" (ref用于上传成功文件后清除验证) //前提form表单要绑定rules:data中 rules:{ imgUpload: [ { required:true, validator:validateFileUrl, trigger:["change"] } ] } //定义校验规则 let validateFileUrl = (rule, value, callback) => { if(this.$refs.imgUpload){ //this.$refs.imgUpload

IBM X3650 M3 7945XJ9 Raid10 配置

大城市里の小女人 提交于 2020-03-18 01:15:54
某厂面试归来,发现自己落伍了!>>> IBM X3650 M3 7945XJ9 Raid10 配置 一、RAID介绍 RAID是Redundent Array of Inexpensive Disks的缩写,直译为“廉价冗余磁盘阵列”,也简称为“磁盘阵列”。后来RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。可以把RAID理解成一种使用磁盘驱动器的方法,它将一组磁盘驱动器用某种逻辑方式联系起来,作为逻辑上的一个磁盘驱动器来使用。 RAID的优点 1. 传输速率高。在部分RAID模式中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个的磁盘驱动器几倍的速率。因为CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。 2. 更高的安全性。相较于普通磁盘驱动器很多RAID模式都提供了多种数据修复功能,当RAID中的某一磁盘驱动器出现严重故障无法使用时,可以通过RAID中的其他磁盘驱动器来恢复此驱动器中的数据,而普通磁盘驱动器无法实现,这是使用RAID的第二个原因。 RAID的分类 RAID 0,无冗余无校验的磁盘阵列。数据同时分布在各个磁盘上,没有容错能力,读写速度在RAID中最快

返回值每一项数组内值校验

两盒软妹~` 提交于 2020-03-17 10:50:46
如下图,获取H5 首页菜单,验证菜单名是否正确 找到对应的接口,查看返回数据,菜单名字存放在TabBar 下的 3 个数组内 Eolinker 传统的 JSON 参数定位( json 结构定位)只能校验第一个数组内的 pageName 而测试预期是需要拼配所有的菜单名称,有两种方法解决这个需求 方法 1 、 JSON 参数定位选择 json Path 定位,按照下图填入数据 方法 2 、 比较暴力,直接全等于。判断简单的数组可以用 参考地址: https://blog.csdn.net/koflance/article/details/63262484 来源: https://www.cnblogs.com/becks/p/12508755.html

Django Forms组件以及知识总结

家住魔仙堡 提交于 2020-03-13 13:11:08
/*--> */ /*--> */ Forms组件 一、Form组件介绍 Form组件可以做的几件事情:   1、用户请求数据验证   2、自动生成错误信息   3、打包用户提交的正确信息   4、如果其中有一个错误了,其他的正确这,保留上次输入的内容   4、自动创建input标签并可以设置样式 二、Form组件的使用   1、创建规则 from django import forms from django.forms import widgets from app01.models import * from django.forms import ValidationError #下面的import和这里效果一样 # from django.core.exceptions import ValidationErrorclass UserForm(forms.Form): name = forms.CharField(min_length=4,label='用户名',error_messages={'required':'该字段不能为空!'}, widget=widgets.TextInput(attrs={'class':'form-control'})) pwd =forms.CharField(min_length=8,label='密码',error_messages

spring 数据校验之Hibernate validation

前提是你 提交于 2020-03-11 14:33:07
1、需要的jar包 2、springsevlet-config.xml配置 在spring3之后,任何支持JSR303的validator(如Hibernate Validator)都可以通过简单配置引入,只需要在配置xml中加入,这时validatemessage的属性文件默认为classpath下的ValidationMessages.properties : <!-- support JSR303 annotation if JSR 303 validation present on classpath --> <mvc:annotation-driven /> 如果不使用默认,可以使用下面配置: <mvc:annotation-driven validator="validator" /> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> <!--不设置则默认为classpath下的ValidationMessages.properties -->

使用JSR-303进行后台数据校验

*爱你&永不变心* 提交于 2020-03-11 14:27:38
一、在SringMVC中使用 使用注解 1、准备校验时使用的JAR validation-api-1.0.0.GA.jar:JDK的接口; hibernate-validator-4.2.0.Final.jar是对上述接口的实现; log4j、slf4j、slf4j-log4j 2、编写需要校验的bean @NotNull(message="名字不能为空") private String userName; @Max(value=120,message="年龄最大不能查过120") private int age; @Email(message="邮箱格式错误") private String email; 3、校验方法 @RequestMapping("/login") public String testValid(@Valid User user, BindingResult result){ if (result.hasErrors()){ List<ObjectError> errorList = result.getAllErrors(); for(ObjectError error : errorList){ System.out.println(error.getDefaultMessage()); } } return "test"; } 备注:这里一个

jwt token认证

北慕城南 提交于 2020-03-11 07:02:36
目录 1、drf-jwt手动签发与校验 2、drf小组件:过滤、筛选、排序、分页 => 针对与群查接口 jwt_token源码分析(入口) 签发token源码分析 校验token源码分析 手动签发token 签发源码小总结: 手动校验token 校验源码小总结 1、drf-jwt手动签发与校验 2、drf小组件:过滤、筛选、排序、分页 => 针对与群查接口 jwt_token源码分析(入口) rest_framework_jwt --> views.py --> ObtainJSONWebToken(JSONWebTokenAPIView) class ObtainJSONWebToken(JSONWebTokenAPIView): serializer_class = JSONWebTokenSerializer 然后到父类中JSONWebTokenAPIView的post方法 def post(self, request, *args, **kwargs): #从get_serializer获取serializer serializer = self.get_serializer(data=request.data) ........ 点击get_serializer def get_serializer(self, *args, **kwargs):

序列化组件之ModelSerializer类

╄→尐↘猪︶ㄣ 提交于 2020-03-08 17:58:48
目录 一、基于ModelSerializer类实现序列化器 1.1 实现序列化组件 1.2 使用序列化组件 1.3 视图类给序列化类传参 1.4 通过source可以连接到数据库中的字段 二、连表序列化 2.1 自定义插拔序列化方法属性 2.2 连表序列化的其他知识点 三、子序列化 四、基于序列化组件实现十大接口 4.1 设置关联自己的ListSerializer,重写ListSerializer的 update方法 序列化与反序列功能可以整合成一个类,该类继承ModelSerializer 一、基于ModelSerializer类实现序列化器 例如,我们以及有了一个 数据库模型类User class User(models.Model): sex_choice = ((0,"男"),(1,"女")) name = models.CharField(max_length=32,unique=True) age = models.IntegerField(null=True) height = models.DecimalField(max_digits=5,decimal_places=2,null=True) sex = models.IntegerField(choices=sex_choice,default=0) icon = models.ImageField

ModelSerializer组件

时光怂恿深爱的人放手 提交于 2020-03-08 17:57:45
ModelSerializer组件 1)序列化与反序列功能可以整合成一个类,该类继承ModelSerializer 2)继承ModelSerializer类的资源序列化类,内部包含三部分 Meta子类、局部钩子、全局钩子 注:create和update方法ModelSerializer已经重写了,使用不需要重写 3)在Meta子类中: 用model来绑定关联的Model类 用fields来设置所有的序列化反序列化字段 用extra_kwargs来设置系统的校验规则 4)重要的字段校验规则: read_only校验规则,代表该字段只参与序列化 write_only校验规则,代表该字段只参与反序列化 required校验规则,代表该字段在反序列化是是否是必填(True)还是选填(False),不能和read_only一起使用(规则冲突) 规则细节: 如果一个字段有默认值或是可以为空,没设置required规则,默认为False,反之默认值为True 如果一个Model字段即没有设置read_only也没设置write_only,该字段默认参与序列化及反序列化 5)自定义序列化字段:在Model类中,定义方法属性(可以返回特殊值,还可以完成连表操作),在序列化类的fields属性中可以选择性插拔 6)自定义反序列化字段:在Serializer类中,自定义校验字段