数据校验

form组件

隐身守侯 提交于 2019-12-18 08:47:35
from组件 form组件的功能 生产input标签 对提交的数据可以进行校验 提供错误提示 定义form组件 from django import forms​​class RegForm(forms.Form): username = forms.CharField() pwd = forms.CharField() 使用 视图 form_obj = RegForm()form_obj = RegForm(request.POST)form_obj.is_valid(): # 对数据进行校验print(form_obj.cleaned_data) # 通过校验的数据​return render(request, 'reg2.html', {'form_obj': form_obj}) 模板 {{ form_obj.as_p }} __> 生产一个个P标签 input label{{ form_obj.errors }} ——》 form表单中所有字段的错误{{ form_obj.username }} ——》 一个字段对应的input框{{ form_obj.username.label }} ——》 该字段的中午提示{{ form_obj.username.id_for_label }} ——》 该字段input框的id{{ form_obj.username.errors

数据库导入/导出

断了今生、忘了曾经 提交于 2019-12-18 06:06:38
直接给出数据库连接字串和列有表名称的文本文件,即可进行exp/imp # begin of exptable #!/bin/ksh PARALLEL_LIMIT=5 WAIT_TIME=10 PARAMETERS="DIRECT=Y COMPRESS=N ROWS=Y INDEXES=Y STATISTICS=NONE";export PARAMETERS TARGET_PATH=./done LOGFILE_PATH=./elogs USER_ID=$1 TABLELIST_FILE=$2 EXTEND_CODE=$3 exptabledata() { echo "\n\n" echo `date +"%Y-%m-%d %H:%M:%S"`" -- 开始导出数据表"$2" ..." echo "Command Line: "exp USERID=******** $PARAMETERS TABLES=$2 FILE=$3 LOG=$4 ZIP_FILE=$3.gz rm -f $3 #exptabledata $USER_ID $TABLE_NAME_UPPER $DMP_FILE $LOG_FILE $TARGET_PATH exp USERID=$1 $PARAMETERS TABLES=$2 FILE=$3 LOG=$4 #echo `date +"%Y-%m-%d %H:

为什么微服务一定要有网关?

陌路散爱 提交于 2019-12-18 02:32:20
1、 什么是服务网关 服务网关 = 路由转发 + 过滤器 1、路由转发:接收一切外界请求,转发到后端的微服务上去; 2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。 2、 为什么需要服务网关 上述所说的横切功能(以权限校验为例)可以写在三个位置: 每个服务自己实现一遍 写到一个公共的服务中,然后其他所有服务都依赖这个服务 写到服务网关的前置过滤器中,所有请求过来进行权限校验 第一种,缺点太明显,基本不用; 第二种,相较于第一点好很多,代码开发不会冗余,但是有两个缺点: 由于每个服务引入了这个公共服务,那么相当于在每个服务中都引入了相同的权限校验的代码,使得每个服务的jar包大小无故增加了一些,尤其是对于使用docker镜像进行部署的场景,jar越小越好; 由于每个服务都引入了这个公共服务,那么我们后续升级这个服务可能就比较困难,而且公共服务的功能越多,升级就越难,而且假设我们改变了公共服务中的权限校验的方式,想让所有的服务都去使用新的权限校验方式,我们就需要将之前所有的服务都重新引包,编译部署。 而服务网关恰好可以解决这样的问题: 将权限校验的逻辑写在网关的过滤器中,后端服务不需要关注权限校验的代码,所以服务的jar包中也不会引入权限校验的逻辑,不会增加jar包大小;

Modbus 协议

♀尐吖头ヾ 提交于 2019-12-16 22:38:57
转载:https://www.cnblogs.com/DreamRecorder/p/9081127.html 一、Modbus 协议简介   Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。   当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 1、在Modbus网络上转输   标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem组网。   控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备

脚本中如何做填报数据校验

倾然丶 夕夏残阳落幕 提交于 2019-12-16 20:11:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在很多填报表项目的开发过程中,为了保证数据规范且有效,常会在报表中设置各种校验以达到目的,比如:工资金额最多只允许包含两位小数、邮政编码必须是全数字组成的 6 位数且首位数字不能是 0 ,等等。这些要求,我们都可以利用报表工具提供的数据类型校验、单元格校验等手段来实现,但是总有“意外”情况出现,比如:小计校验要求分组内的各值相加等于分组小计,这种类型的校验有什么难点?怎么实现?下面我们举例实际看一下。 首先,了解基本情况及要求: 展现效果: 要求: 报表数据来源于数据库,其中 A 列指标名称是从数据库扩展取出的,要求各项计算结果满足分组内各值相加等于分组小计(比如:要求本年本月累计项中,指标代码 2 = 指标代码 3 + 指标代码 4),如果不满足则给出提示信息,要求进行修改,满足则可以正常提交。 报表设计界面如下: 其中 数据来源: 数据去向: 数据处理部分直接通过向导生成,这里不多做说明了。 分析难点: 由于分组小计(指标代码 2) 和 分组各项(指标代码 3+ 指标代码 4)都是从同一个字段“指标名称”扩展而来,报表不能准确定位取到参与计算单元格的位置并进行计算,故报表层面很难实现这种小计校验。 那么,就没办法实现了吗?(坏笑)对于润乾报表来说,显然那是不可能的。下面重点介绍这个神技能 : 脚本校验 什么

RAID技术全解图解-RAID0、RAID1、RAID5、RAID100【转】

怎甘沉沦 提交于 2019-12-16 14:09:34
图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100……   RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆。这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则,对于初学者应该有很大的帮助。 一、RAID 概述   1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 [1] ,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。由于当时大容量磁盘比较昂贵, RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低, RAID 可以使用大部分的磁盘, “廉价” 已经毫无意义。因此, RAID 咨询委员会( RAID Advisory Board, RAB )决定用 “ 独立 ” 替代 “ 廉价 ” ,于时 RAID 变成了独立磁盘冗余阵列( Redundant Array of

登录功能和数据库校验:

我的梦境 提交于 2019-12-16 13:45:30
from django.shortcuts import render,HttpResponse,redirectimport pymysql# Create your views here.def index(request): print(request.path_info) return HttpResponse('<h1>index</h1>') # return render(request, 'index.html')def modal(request): return render(request, 'modal.html')def login(request): # 判断如果是get请求返回登录页面: if request.method == "GET": return render(request,"login.html") # 否则处理post请求、获取提交数据: else: print(request.POST) #获取用户名: username = request.POST.get("user") password = request.POST.get("password") #用户名和密码校验: conn = pymysql.connect ( user="root", password="123", db="alex", charset="utf8" )

iview form表单数值类型校验「iview自定义form表单校验器」

那年仲夏 提交于 2019-12-16 10:16:49
摘录iview表单验证 Form 组件基于 sync-validator 实现的数据验证,给 Form 设置属性 rules ,同时给需要验证的 FormItem 设置属性 prop 指向对应字段即可。 完整的验证规则请参照开源项目 sync-validator 。 验证方法也支持 Promise 。 综上,我们知道了 iview 使用的是 sync-validator 。 数值方式校验 当我们使用 Form 表单校验时,如果字段使用的是 String 类型,显然通过 required:true 即可满足,但如果是数值时可就不能这么校验了,怎么办呢? 👉 自定义校验 X 错误示范 : formValidate: { money: [{ required: true, message: "金额不能为空", trigger: "blur" }]}, ✓ 自定义校验方式 : formValidate: { money: [{ validator: validateMoney, trigger: 'blur' ,required:true }]}, 我们用到了 validator 属性,在这我们引入了自己定义的校验规则 validateMoney ,该方法可以放在公共部分,具体如下: const validateMoney = (rule, value, callback) => {

JsonSchema用法

不问归期 提交于 2019-12-14 01:08:58
JsonSchema用法 简介 JSON Schema是基于JSON格式,用于定义JSON数据结构以及校验JSON数据内容。 JSON Schema官网地址: http://json-schema.org/ JsonSchema类似于xml的schema和DTD的作用,主要是用来规范json的格式。 关键字及其描述 关键字 描述 $schema 表示该JSON Schema文件遵循的规范 title 为该JSON Schema文件提供一个标题 description 关于该JSON Schema文件的描述信息 type 表示待校验元素的类型(例如,最外层的type表示待校验的是一个JSON对象,内层type分别表示待校验的元素类型为,整数,字符串,数字) properties 定义待校验的JSON对象中,各个key-value对中value的限制条件 requiredv 定义待校验的JSON对象中,必须存在的key minimum 用于约束取值范围,表示取值范围应该大于或等于minimum exclusiveMinimum 如果minimum和exclusiveMinimum同时存在,且exclusiveMinimum的值为true,则表示取值范围只能大于minimum maximum 用于约束取值范围,表示取值范围应该小于或等于maximum exclusiveMaximum

SpringBoot如何优雅的校验参数

只谈情不闲聊 提交于 2019-12-13 11:31:05
前言 做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的。如果参数比较少的话还是容易 处理的一但参数比较多了的话代码中就会出现大量的 IF ELSE 就比如下面这样: 这个例子只是校验了一下空参数。如果需要验证邮箱格式和手机号格式校验的话代码会更多,所以介绍一下 validator 通过注解的方式进行校验参数。 什么是Validator Bean Validation是Java定义的一套基于注解的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本,再到JSR 380的2.0版本(2.0完成于2017.08),已经经历了三个版本 。在 SpringBoot 中已经集成在 starter-web 中,所以无需在添加其他依赖。 注解介绍 validator内置注解 注解 详细信息 @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value)