数据校验

drf序列化与反序列化

风流意气都作罢 提交于 2019-12-01 10:25:09
序列化组件: 知识点:Serializer(偏底层)、ModelSerializer(重点)、ListModelSerializer(辅助群改) Serializer 序列化准备: 模型层:models.py class User(models.Model): SEX_CHOICES = [ [0, '男'], [1, '女'], ] name = models.CharField(max_length=64) pwd = models.CharField(max_length=32) phone = models.CharField(max_length=11, null=True, default=None) sex = models.IntegerField(choices=SEX_CHOICES, default=0) icon = models.ImageField(upload_to='icon', default='icon/default.jpg') class Meta: db_table = 'old_boy_user' verbose_name = '用户' verbose_name_plural = verbose_name def __str__(self): return '%s' % self.name 后台管理层:admin.py from

DRF框架(二)——解析模块、异常模块、响应模块、序列化组件(序列化与反序列化)

大城市里の小女人 提交于 2019-12-01 10:23:58
解析模块 为什么要配置解析模块 1)drf给我们提供了多种解析数据包方式的解析类 form-data/urlencoded/json 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析 3)全局配置就是针对每一个视图类,局部配置就是针对指定的视图来,让它们可以按照配置规则选择性解析数据 源码入口 # APIView类的dispatch方法中 request = self.initialize_request(request, *args, **kwargs) # 点进去 # 获取解析类 parsers=self.get_parsers(), # 点进去 # 去类属性(局部配置) 或 配置文件(全局配置) 拿 parser_classes return [parser() for parser in self.parser_classes] 全局配置:项目settings.py文件 REST_FRAMEWORK = { # 全局解析类配置 'DEFAULT_PARSER_CLASSES': [ 'rest_framework.parsers.JSONParser', # json数据包 'rest_framework.parsers.FormParser', # urlencoding数据包 'rest_framework.parsers

drf基础模块与四大组件之序列化组件

懵懂的女人 提交于 2019-12-01 10:21:34
解析模块 为什么要配置解析模块 1drf给我们通过了多种解析数据包数据方式的解析类 2. 我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析 3. 全局配置就是争对每一个视图类,而局部配置则只是争对其指定的视图类,让它们按照规定的解析数据包数据的格式来解析。 源码分析 入口在APIView中dispatch方法中 request = self.initialize_request(request, *args, **kwargs) # 点进去 获取解析类 parsers=self.get_parsers(), # 点进去 去类属性(局部配置)或配置文件(全局配置)拿parser_classes return [parser() for parser in self.parser_classes] 全局配置:项目settings.py文件 REST_FRAMEWORK = { # 全局解析类配置 'DEFAULT_PARSER_CLASSES': [ 'rest_framework.parsers.JSONParser', # json数据包 'rest_framework.parsers.FormParser', # urlencoding数据包 'rest_framework.parsers.MultiPartParser' # form-date数据包 ]

解析模块

流过昼夜 提交于 2019-12-01 10:20:57
为什么要配置解析模块 """ 1)drf给我们通过了多种解析数据包方式的解析类 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析 3)全局配置就是针对每一个视图类,局部配置就是针对指定的视图来,让它们可以按照配置规则选择性解析数据 """ 源码入口 # APIView类的dispatch方法中 request = self.initialize_request(request, *args, **kwargs) # 点进去 # 获取解析类 parsers=self.get_parsers(), # 点进去 # 去类属性(局部配置) 或 配置文件(全局配置) 拿 parser_classes return [parser() for parser in self.parser_classes] 全局配置:项目settings.py文件 REST_FRAMEWORK = { # 全局解析类配置 'DEFAULT_PARSER_CLASSES': [ 'rest_framework.parsers.JSONParser', # json数据包 'rest_framework.parsers.FormParser', # urlencoding数据包 'rest_framework.parsers.MultiPartParser' # form-date数据包

测试博客

会有一股神秘感。 提交于 2019-12-01 10:18:14
复习 1 """ 2 1、接口:url+请求参数+响应参数 3 Postman发送接口请求的工具 4 method: GET 5 url: https://api.map.baidu.com/place/v2/search 6 params: 7 ak: 6E823f587c95f0148c19993539b99295 8 region: 上海 9 query: 肯德基 10 output: json 11 12 ​ 13 2、restful接口规范 14 https://api.baidu.com/v1/books?ordering=-price&limit=3 15 get|post|put|patch|delete 16 { 17 'status': 0, 18 'msg': 'ok', 19 'results': [ 20 { 21 'title': '西游记', 22 'img': ' https://api.baidu.com/media/xyj.png ' 23 } 24 ] 25 } 26 ​ 27 3、基于规范下原生django接口 28 api/books/ views.Book.as_view() 29 api/books/(?P .*)/ views.Book.as_view() 30 31 class Book(View): 32 def get(self

drf解析模块,异常模块,响应模块,序列化模块

一世执手 提交于 2019-12-01 10:15:31
复习 """ 1、接口:url+请求参数+响应参数 Postman发送接口请求的工具 method: GET url: https://api.map.baidu.com/place/v2/search params: ak: 6E823f587c95f0148c19993539b99295 region: 上海 query: 肯德基 output: json 2、restful接口规范 https://api.baidu.com/v1/books?ordering=-price&limit=3 get|post|put|patch|delete { 'status': 0, 'msg': 'ok', 'results': [ { 'title': '西游记', 'img': 'https://api.baidu.com/media/xyj.png' } ] } 3、基于规范下原生django接口 api/books/ views.Book.as_view() api/books/(?P<pk>.*)/ views.Book.as_view() class Book(View): def get(self, request, *args, **kwargs): pk = kwagrs.get('pk') if pk: # 单查 else: # 群查 def post(self,

MVC 自定义数据校验规则 Validation

走远了吗. 提交于 2019-12-01 10:14:19
MVC 自定义数据校验规则 Validation 原文链接 https://blog.csdn.net/fanbin168/article/details/79549024 MVC 数据验证,自定义验证规则 1>如果这个验证能直接用正则表达式进行校验的话,那我们就新建一个类,让它继承自RegularExpressionAttribute类 namespace MvcApp.Fileters{ public class QQNumberAttribute : RegularExpressionAttribute { public QQNumberAttribute() : base(@"^\d{6,10}$") //这里直接调用父类的构造函数传递一个正则表达式进行验证 { this.ErrorMessage = "{0}不是合法的QQ好,QQ号是6-10位数字"; //这个{0} 是一个占位符,表示输入的QQ号码,当然我们也可以不要这个占位符的。 } }} 用法(在模型上打上这个特性标签就可以了): public class UserInfo{ public int Id { get; set; } [Required] public string Namge { get; set; } //只要在这里打上这个自定义的QQNumber特性标签就可以了 [QQNumber

C# asp.net MVC学习系列-前后台数据校验

安稳与你 提交于 2019-12-01 10:13:49
asp.net MVC学习系列-前后台数据校验 原文链接:https://blog.csdn.net/ydm19891101/article/details/43485253 Web页面,是一个数据进入的接口,对数据的合法性、正确性检测非常重要。做好表单数据验证工作可以防止那些攻击数据以及不合理数据。通过使用客户端和服务器端双重验证,可以保证表单数据的安全性。有时候客户端验证不是太安全的,可以设法绕开客户端验证,所以服务端验证也是需要的。但是为了减轻服务器的压力,还是尽量使用客户端验证。下面分别介绍MVC设计模式中如何实现两种验证。 一、客户端校验 客户端的校验有两种方式:jQuery方式、MVC方式 在讲校验之前先说明一个问题:VIew视图的创建必须是强类型的。 首先在Models文件夹下添加一个类,以Teacher类为例,具体代码: public class Teacher { public string Tno { set; get; } public string Tname { set; get; } public int Tsex { set; get; } public string Taddress { set; get; } public string Tphone { set; get; } } 重新生成项目 新添加一个Teacher控制器

2单表CRUD综合样例开发教程

♀尐吖头ヾ 提交于 2019-12-01 09:43:58
东软集团股份有限公司 基础软件事业部 单表 CRUD 综合样例开发教程 东软机密 tui 更改履历 版本号 更改时间 更改的 图表和章节号 状态 更改简要描述 更改申 请编号 更改人 批准人 V1.0 2014-11-28 N 刘玥 注:状态可以为N-新建、A-增加、M-更改、D-删除 目录 第1章 功能说明. 1 第2章 功能详解. 2 2.1 所需模型. 2 2.1.1 ENTITY模型. 2 2.1.2 BO、DAO模型. 3 2.1.3 VIEW模型. 3 2.2 单表CRUD样例制作步骤. 3 2.2.1 新建SC 3 2.2.2 新建DC 4 2.2.3 新建Entity 5 2.2.4 新建VIEW模型. 7 2.2.5 demoUserMgr.view模型开发. 9 2.2.6 demoUserEdit.view模型开发. 24 2.2.7 配置密码框. 31 2.2.8 配置手机号码校验. 32 2.2.9 自定义Codelist 33 第3章 开发效果展示. 36 第1章 功能说明 本教程中包含以下功能点: 1. 使用autoQuery达到无编码查询; 2. XGrid中某列设置成超链接,点击进行页面穿透; 3. 根据日期进行查询; 4. 性别、国籍等代码表的使用; 5. XGrid表格的cell上使用代码表进行转义; 6. 在TitlePane上添加按钮; 7

使用jsr303实现数据校验

天涯浪子 提交于 2019-12-01 09:41:27
除了前端的js验证,服务端也可加入数据验证,springmvc中有两种方式可以验证输入 利用spring自带的验证框架 利用jsr303实现 jsr303实现数据校验 jsr303是java为bean数据合法性校验所提供的标准框架。jsr303不需要编写验证器,它定义了一套可标注在成员变量、属性方法上的校验注解。 springmvc支持jsr303标准的校验框架,spring的DataBinder在进行数据绑定时,可同时调用校验框架来完成数据校验工作,非常方便。 spring本身没有提供jsr303的实现,hibernate validator实现了jsr303,所以必须在项目中加入来自hibernate validator库的jar文件 ,复制hibernate-validator-4.3.2.Final-dist.zip中的三个jar文件即可,spring将会自动加载并装配 hibernate-validator-4.3.2.Final.jar jboss-logging-3.1.0.CR2.jar validator-api-1.0.0.GA.jar package edu.cn.pojo; import org.hibernate.validator.constraints.Length; import org.springframework.format