数据校验

Django组件之form

匿名 (未验证) 提交于 2019-12-02 23:52:01
一、原始注册校验 # 后端 def realreg(request): error = {'username':'','password':''} # 定义一个字典存储错误信息 if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') if len(password) < 6: error['password'] = '密码不能小于6位' return render(request,'reg.html',{'error':error}) # 前端 <input type='text' name='username'> <span>{{ error.username }}</span> <input type='text' name='password'> <span>{{ error.password }}</span> 前端是个注册界面,页面里面有form表单 >>> 生成HTML前端代码 form表单要能提交数据到后端,后端要做有效性校验 >>> 数据有效性校验 要把校验的提示信息展示到页面上 >>> 校验信息返回并展示   关于数据检验:前端通过JS代码校验(可有可无),后端通过代码校验(必须有)

drf后台数据校验以及认证组件

匿名 (未验证) 提交于 2019-12-02 23:49:02
校验 # objson.py class BookJson ( serializers . ModelSerializer ) : class Meta : model = models . Book fields = '__all__' # 单个字段校验 name = serializers . CharField ( min_length = 3 , max_length = 5 , error_messages = { 'min_length' : '太短' } ) # 局部钩子校验 def validate_name ( self , value ) : from rest_framework . exceptions import ValidationError if 'sb' in value : raise ValidationError ( '不能出现哔词汇' ) return value # views.py class Books ( APIView ) : # 新增 def post ( self , request ) : book = request . data book_json = objson . BookJson ( data = book ) # 必须明确data if book_json . is_valid ( ) : # 校验 book

HCIA-Storage:第七章存储可靠性

匿名 (未验证) 提交于 2019-12-02 23:40:02
1.为什么要引入RAID? 在传统的计算机存储系统中,存储工作通常是由计算机内置的磁盘来完成的,这种设计方式性能和容量都很容易遇到瓶颈。 内置存储存在诸多问题(重点): 1.由于机箱空间有限,硬盘数量的扩展受到限制了,单台服务器上存储容量自然也会受到限制; 2.不便于扩容,机箱满载的情况下需要扩展容量,只能通过添购服务器的方式实现,投资成本高,而且数据分散存储在不同的服务器上,不利于共享和备份; 3.可靠性低,机箱内部的硬盘相互独立,没有相关数据保护措施,坏盘情况下数据丢失的风险大; 4.存储空间利用率低,一台主机内置一块或几块容量较大的硬盘,而自身业务只需极小部分存储空间的情况下,其他主机也无法利用这些闲置的空间,总体而言造成了存储资源的浪费; 5.内置存储直接通过总线与内存相连,占用总线资源,影响主机性能。 随着大型计算、海量数据存储的发展,各类应用对计算能力、数据存储资源方面都有更高的要求,计算机内置存储已经很难满足各类信息化应用的需求。为了克服传统内置存储存在的问题,扩展磁盘数量,人们把磁盘从机箱里面挪到了机箱外面,通过SCSI总线将主机与外置的磁盘联系起来,进而通过扩展磁盘数量获得足够大的存储容量(引入RAID)。 重点:RAID技术的初衷,是将多个小容量的磁盘组合成一个大的逻辑磁盘,以获得更大的存储容量给大型计算机使用。随着磁盘技术不断发展,单个磁盘容量不断增大

js input输入框校验

匿名 (未验证) 提交于 2019-12-02 23:40:02
只能输入英文 <input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"> 只能输入英文 <input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" onkeydown="fncKeyStop(event)" onpaste="return false" oncontextmenu="return false" /> 无法粘贴,右键不会弹出粘贴菜单 只能输入数字: <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"> 只能输入数字,小数点: <input name="price" type="text" onkeyup="value=value.replace(/[^\d\.]/g,'')"> 只能输入数字,小数点,下划线: <input name="price" type="text" onkeyup="value=value.replace(/[^\d\._]/g,'')"> 只能输入英文和数字: <input onkeyup="value=value

1 RAID技术入门

孤街醉人 提交于 2019-12-02 23:04:58
序 RAID一页通整理所有RAID技术、原理并配合相应RAID图解,给所有存储新人提供一个迅速学习、理解RAID技术的网上资源库,本文将持续更新,欢迎大家补充及投稿。中国存储网一如既往为广大存储界朋友提供免费、精品资料。 1.什么是Raid; RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。RAID 的基本原理是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。 目前 RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。 其中在Linux下通过自带的软件就能实现RAID功能,这样便可省去购买昂贵的硬件 RAID 控制器和附件就能极大地增强磁盘的 IO 性能和可靠性。由于是用软件去实现的RAID功能,所以它配置灵活、管理方便。同时使用软件RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。当然基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。 2.RAID级别介绍; 一般常用的RAID阶层,分别是RAID 0、RAID1、RAID 2、RAID 3、RAID 4以及RAID 5,再加上二合一型 RAID 0+1或称RAID

Web框架之Django_08 重要组件(form组件、cookie和session组件)

匿名 (未验证) 提交于 2019-12-02 22:51:30
摘要: form组件 cookie组件 session组件 一、form组件 form介绍 我们之前在html页面中利用form表单向后端提交数据时候,都需要对用户的输入进行校验,比如校验用户是否输入正确(长度、格式...),如果用户输入的内容有误则需要在相应的位置显示对应的错误信息来提醒用户,提高前端的交互效率。 from组件主要功能有: 先来看看自己手写注册功能的过程: # 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: # 用户长度小于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">

form组件

岁酱吖の 提交于 2019-12-02 22:19:22
form组件 这里抛出一个问题 校验: 1.注册功能 用户输入的用户名中 不能包含‘xxx’ 如果包含了 就提示用户 输入的内容不符合社会主义核心价值观 用户输入的密码 不能小于三位 如果密码少于三位 提示用户 密码太短了 校验数据通常是前后端都有校验 但是前端校验可有可无 哪怕再牛逼 后端也必须要有校验 反正一句话 前端可有不校验 后端必须校验!! (深深的体现了开发鄙视链) 这个时候用 form组件 就可以自动帮我们完成三个功能: 1.搭建前端页面(渲染页面) 2.获取前端用户提交的数据校验(校验数据) 3.对数据的校验的结果 展示到前端页面给用户查看 (展示错误信息) 我们首先需要自己写一个继承了Form的类。 from django import forms class MyRegForm(forms.Form): username = forms.CharField(min_length=3,max_length=8) password = forms.CharField(min_length=3,max_length=8) email = forms.EmailField() 如何校验数据? from app01 import views # 1.给自定义的类传一个字典 obj = views.MyRegForm({'username':'jason',

MySQL主从同步校验工具_pt-table-checksum

匿名 (未验证) 提交于 2019-12-02 22:02:20
注意事项 master和slave必须是同步状态 master show slave hosts; slave show slave status\G;看看是否同步成功 安装 yum install perl perl-devel perl-Time-HiRes perl-DBI perl-DBD-MySQL and? yum -y ?install perl-Time-HiRes and? yum install perl perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Time-HiRes -y wget www.percona.com/downloads/percona-toolkit/2.2.2/percona-toolkit-2.2.2.tar.gz tar xvf percona-toolkit-2.2.2.tar.gz cd percona-toolkit-2.2.2 perl Makefile.PL make && make install 检查命令 pt-table-checksum --nocheck-replication-filters --replicate=test.checksum --databases=edu h=192.168.1.206,u=root,p=yixq.321 --empty

drf 权限认证

核能气质少年 提交于 2019-12-02 22:01:56
目录 复习 前期准备 三大认证简介 AbstracUser源码分析 自定义User下的权限六表 models.py 到settings.py中注册 注意点: 执行数据迁移的俩条命令 创建超级用户 源码分析 复习 """ 视图家族 1、视图类:APIView、GenericAPIView APIView:作为drf的基础view;as_view()禁用csrf;dispatch()二次封装request、三大认证、解析、渲染、响应、异常等模块;一堆类属性,可以用来做全局或局部插拔配置 GenericAPIView:继承APIView;三个方法三个属性(obj,queryset,serializer) 2、视图工具集:mixin五大工具类(六个方法) list:群查 retrieve:单查 create:单增 destroy:单删 update:单整体改 partial_update:单局部改 前提:工具类都是由GenericAPIView的子类来继承 3、工具视图:Generic各种子类 ListAPIView(ListModelMixin, GenericAPIView):继承该类的视图类,只需要提供几个类属性,就可以完成群查,不需要书写get方法 ListCreateAPIView(ListModelMixin, CreateModelMixin, GenericAPIView)

drf ___jwt插件

六月ゝ 毕业季﹏ 提交于 2019-12-02 21:43:03
drf-jwt插件 官网 ? 1 https: / / github.com / jpadilla / django - rest - framework - jwt 安装 ? 1 >: pip3 install djangorestframework - jwt 登录 - 签发token:api/urls.py ? 1 2 3 4 5 6 # ObtainJSONWebToken视图类就是通过username和password得到user对象然后签发token from rest_framework_jwt.views import ObtainJSONWebToken, obtain_jwt_token urlpatterns = [ # url(r'^jogin/$', ObtainJSONWebToken.as_view()), url(r '^jogin/$' , obtain_jwt_token), ] 认证 - 校验token:全局或局部配置drf-jwt的认证类 JSONWebTokenAuthentication ? 1 2 3 4 5 6 7 8 9 10 from rest_framework.views import APIView from utils.response import APIResponse # 必须登录后才能访问 - 通过了认证权限组件