首页
学习
活动
专区
圈层
工具
发布

drf序列化器之反序列化的数据验证

,客户端提交数据的时候使用,不会提供给客户端 pub_date = serializers.DateField(required=True,label="发布日期", help_text="发布日期...如果验证失败,则vcalidated_data是空字典 print(serializer.validated_data) # 把数据保存到数据库中...child=) 选项参数: 参数名称 作用 max_length 最大长度[适用于字符串,列表,文件] min_lenght 最小长度[适用于字符串,列表,文件] allow_blank 是否允许数据的值为空...False write_only 表明该字段仅用于反序列化输入,默认False required 表明该字段在反序列化时必须输入,默认True default 反序列化时使用的默认值 allow_null...表明该字段是否允许传入None,默认False validators 该字段使用的验证器 error_messages 包含错误编号与错误信息的字典 label 用于HTML展示API页面时,显示的字段名称

2.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    快速上手 Python 命令行模块 Click

    接下来说下这几个参数的含义 -n:表示我们在命令行指定参数名的时候使用它即可,注意是一个短'-' --num:是第一个参数的完整名称,我们在程序中接收值的时候使用它。注意是二个短'-'。...设定为默认值的参数,可以不指定其值,这时候会使用默认值。 如果我们使用 help 查看信息会发现和上面的方法一没什么区别的。...这里我添加了的参数为 id ,因为一般情况下 id 是不能为空的,所以我们就可以通过required = True对它进行限制,表示该参数为必传参数。...正确的使用方法应该是 python3 demo.py -i 1 -n 1234 到目前为止一个简答的命令行工具就生成了。接下来说下我用它做过什么事情。...或者我们还可以使用 fastapi搭建一个RESTful api的服务,但是我的懒得搭这个服务。最终我选择使用命令行的形式去运行。使用的模块就是今天说的这个 click 模块。

    1.6K10

    Python+request+unittest实现接口测试框架集成实例

    ---- 1、为什么要写代码实现接口自动化 大家知道很多接口测试工具可以实现对接口的测试,如postman、jmeter、fiddler等等,而且使用方便,那么为什么还要写代码实现接口自动化呢?...5、通过单元测试框架断言接口返回的数据(zhangsan 的个人信息),并生成测试报告。 为了使正式数据库的数据不被污染,建议使用独立的 测试数据库 。...接下来,判断发布会id是否存在,以及发布会名称(name)是否存在;如果存在将返回相应的状态码和 提示信息。 再接下来,判断发布会状态是否为空,如果为空,将状态设置为1(True)。...最后,将数据插入到 Event 表,在插入的过程中如果日期格式错误,将抛出 ValidationError 异常,接收 该异常并返回相应的状态和提示,否则,插入成功,返回状态码200和“add event...如果发布会id不为空,优先通过id查询,因为id的唯一性,所以,查询结果只会有一条,将查询结果 以 key:value 对的方式存放到定义的event字典中,并将数据字典作为整个返回字典中data对应的值返回

    1.3K20

    Django ORM 知识概要

    相关命令 python3 manage.py makemigrations 根据模型生成相关迁移文件 python3 manage.py migrate 根据迁移文件,将表结构更新到数据库中,并在...SET_NULL:将引用设置为NULL(要求字段可以为空),当字段设置null=True才可以使用 SET_DEFAULT:设置默认值。...只有当字段设置了default参数时才能使用 SQL等价物:SET DEFAULT。 SET(value 或者 函数返回值):设置给定值。这个不是SQL标准的一部分,完全由Django处理。...,Meta类的字段如下: db_table ordering 列表或者元组形式 verbose_name 别名 verbose_name_plural 别名复数 abstract 不同步到数据库,只是用于被别的类继承...python3 manage.py loaddata data.json 通过数据库客户端或则source文件导入数据 导出数据 python3 manage.py dumpdata > data.json

    2.2K20

    Python 函数库 APIs 编写指南

    在 Scrapy 1.3 中则修改了这个 Bug,修改后即可以接收字符串,也可以接收字符串列表。 - 检测是否只是为了调用 API 就实例化某些东西的情况。如果存在,可以考虑接收封装值。...在 Python3 中,这个问题得以修复,此函数的参数输入就类似字典那样了。 一致性 命名问题:你 API 中的命名是否和 Python 的习俗保持了一致性?...:在空值意义的定义是否一致?...- 提供多级的抽象结构,从最简单到最个性化。...首先尝试使用 quack,如果错误则引发 TypeError 异常,并打印明确的错误信息。 总结 我的 API 旨在将简单的事情变的简洁,将复杂的事情变为现实,将错误的事情永远杜绝。

    1.3K40

    【Django】 Python Web 框架基础

    Django框架的介绍 起源&现状 2005年发布,采用Python语言编写的开源web框架 早期的时候Django主做新闻和内容管理的 一个重量级的 Python Web框架,Django...配备了常用的大部分组件 基本配置 路由系统 原生HTML模板系统 视图 view Model模型,数据库连接和ORM数据库管理 中间件 Cookie & Seesion 分页 数据库后台管理系统admin...创建应用 python3 manage.py migrate 数据库迁移 ... mysite1 项目文件夹 项目包的主文件夹 (默认与项目名称一致) __init__.py 包初始化文件,当此项目包被导入...) False 表示当前项目运行在生产环境中(不启用调试) ALLOWED_HOSTS 设置允许访问到本项目的host请求头的值,取值: [] 空列表,表示只有host请求头为127.0.0.1,...fragment(信息片断) 字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用 fragment 直接定位到某一名词解释。

    2.6K20

    Python 函数库 APIs 编写指南

    在 Scrapy 1.3 中则修改了这个 Bug,修改后即可以接收字符串,也可以接收字符串列表。    -  检测是否只是为了调用 API 就实例化某些东西的情况。如果存在,可以考虑接收封装值。...在 Python3 中,这个问题得以修复,此函数的参数输入就类似字典那样了。 一致性 命名问题:你 API 中的命名是否和 Python 的习俗保持了一致性?我们命名应该与 PEP8 中所给出一致。...:在空值意义的定义是否一致?...- 将底层实现中常见的错误进行封装,避免给用户直接报错。例如当 API 支持多个数据引擎的时候,出现数据库连接错误时,其显示信息应该一样。...首先尝试使用 quack,如果错误则引发 TypeError 异常,并打印明确的错误信息。 总结 我的 API 旨在将简单的事情变的简洁,将复杂的事情变为现实,将错误的事情永远杜绝。

    95900

    Java8-Stream API

    大家好,又见面了,我是全栈君。...了解Stream ​ Java8中有两个最为重要的改变,一个是Lambda表达式,另一个就是Stream API,针对常见的集合数据处理,Stream API 提供了一种高效且易于使用的数据处理方式。...Set 把流中元素收集到Set toCollection Collection 把流中元素收集到创建的集合 groupingBy Map> 根据某属性值对流分组,属性为K,结果为V partitioningBy...使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。...简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/108115.html原文链接:https

    83220

    一期Go群问答-并发控制-数据竞争-错误与异常

    为什么我的协程没有成功等待? 熊:如果用了wait group,请求就直接卡住了,如果只有一个goroutine那和直接调用函数没有区别其实。...熊:会影响的,估计map中的hmap会影响到,有几率会在运行时报错 机器马:你在用之前没法确定会用哪个key啊,除非你再用结构体封装一层 熊:我想到两个办法,1是用这个,还有一个是弄个channel,如果数据用途不一样...追问:sync.Map 这个Range 方法有个返回值,是bool是用来返回是否range空map吗?range如何处理碰到到空的?...熊:这个bool是传入函数的返回值,调用完以后如果是Map是空的,实际上就什么也没做,不会给返回。里面给迭代,你传入的函数处理下k v的行了。没办法判断是否为空。...另外jwt的载荷中可以存储一些常用信息,用于交换信息,有效地使用 JWT,可以降低服务器查询数据库的次数。

    46430

    域渗透之Zerologon域提权漏洞

    大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。...Netlogon远程协议RPC接口还用于为备份域控制器(BDC)复制数据库。 Netlogon远程协议用于维护从域成员到域控制器(DC),域的DC之间以及跨域的DC之间的域关系。...漏洞概述 该漏洞主要是由于在使用Netlogon安全通道与域控进行连接时,由于认证协议加密部分的缺陷,导致攻击者可以将域控管理员用户的密码置为空,从而进一步实现密码hash获取并最终获得管理员权限。...python3 cve-2020-1472-exploit.py -n server2012 -t 10.211.55.12 -n指定域控计算机主机名 -t指定域控ip 运行exp,确定把域控机器账户密码置换成空...secretsdump.py -sam sam.save -system system.save -security security.save LOCAL $MACHINE.ACC: 的值,然后使用

    90300

    一期每日一GO群分享-flag、viper、协程池、异常处理

    为什么我的协程没有成功等待? 熊:如果用了wait group,请求就直接卡住了,如果只有一个goroutine那和直接调用函数没有区别其实。...熊:会影响的,估计map中的hmap会影响到,有几率会在运行时报错 机器马:你在用之前没法确定会用哪个key啊,除非你再用结构体封装一层 熊:我想到两个办法,1是用这个,还有一个是弄个channel,如果数据用途不一样...追问:sync.Map 这个Range 方法有个返回值,是bool是用来返回是否range空map吗?range如何处理碰到到空的?...熊:这个bool是传入函数的返回值,调用完以后如果是Map是空的,实际上就什么也没做,不会给返回。里面给迭代,你传入的函数处理下k v的行了。没办法判断是否为空。...另外jwt的载荷中可以存储一些常用信息,用于交换信息,有效地使用 JWT,可以降低服务器查询数据库的次数。

    41320

    Django来敲门~第一部分【5.2.模型和数据库交互】

    数据库配置【MySQL】 通常情况下,如果你只是做测试使用,可以使用Django内置的数据库SQLite就完全可以满足需要了,我们在本次教程中,通过使用MySQL这个数据库来完成后续的功能操作 我们首先要做的是...骚年,期待你在使用到时候,官方能提供和Python3.6配套的mysqldb来进行数据库操作。或者你直接参与到官方的开发队伍中,那就更完美了~ 3. 创建模型应用并和数据库交互 3.1....管理模型对象 一旦创建好了我们的模型类型,需要在项目中使用这些模型和数据库中的数据进行交互,首先我们要做的是~将我们模块应用polls纳入到项目管理中 很神奇的一句话:“纳入到项目管理中”,难道之前就木有在项目管理中吗...这是为什么呢?...使用模型对象的API操作 在命令行通过shell启动应用,就可以直接进行python根据模型应用提供的API接口的访问测试了 执行如下命令: python3 manage.py shell 就可以在命令行中

    56010

    甲方安全中心建设:代码审计系统

    该系统是使用python3的django去开发,队列使用celery+redis,最后调用代码审计工具fortify进行审计代码。...由于本人不想花时间去研究禅道的接口,干脆直接简单粗暴将漏洞的记录直接写进数据库里面。 对于禅道的功能,我设置了三个功能以完成发送到禅道系统里面进行展示。 ①批量隐藏,为什么不是删除呢?...因为我是根据漏洞的标题+漏洞的项目+漏洞的文件名+漏洞的处于的行数进行生成一个MD5值,当你删除之后,下一次这个漏洞会再次生成,所以只能将这条记录隐藏。...为什么不适用禅道的邮件?因为直接写进数据库是不发送邮件的。 ? 禅道系统的设置:新建一个产品叫安全审计,在项目添加对应的git的项目,添加负责人= =讲真,这一部分要根据自身的业务做一个调整 ? ?...说一下禅道和我这个系统的链接配置,person_info这个表是保存禅道项目的负责人和项目ID,发送过程的时候获取这些信息加入到SQL中,最后执行这段SQL写入禅道的数据库。 ? ?

    2.3K21

    基本数据类型、输入输出、运算符

    数据类型值是变量值的类型,变量值之所以区分类型,是因为变量值是用来记录事物状态的,而事物的状态有不同的种类,对应着,也必须使用不同类型的值去记录它们。 有哪些数据类型呢?...定义:x = True y = False 使用:print(type(x),type(y)) 强调:所有的数值都自带布尔值,其中0、None、空 布尔值为False,其余都为True。...(空 可以为空列表、空字符串、空字典) if [ ]: print('OK') else: print('no OK') 三、输入输出 1、接收用户输入 name = input('请输入你的用户名...')) print('my name is %s my age is %d'%(name,age)) %d:只能接收数字 %s:可以接收数字,也可以接收字符串 了解:在python3中只有一个input...,input会将用户输入的任何内容都存成字符串类型; 在python2中有两种接收用户输入的机制: raw_input:等同于python3中的input input:要求输入者必须输入一个明确的数据类型

    63920

    《苍穹外卖Day6:大一菜鸟的代码升空纪实》

    =》 判断是否为空 =》 为空则抛出异常,不为空则在进行操作 =》 根据openid查询数据库 =》 判断数据库中User是否有值 =》 没有,则是新用户登录,将用户数据存入数据库...则是用户微信的唯一标识(每个用户的标识都不同),唯一想到什么,数据唯一,我们可以用这个来判断该用户是否注册(在数据库查询) 3.用授权码code来获取openid需要访问https://api.weixin.qq.com...参数名=值&参数名=值) 返回参数(我们这里只需要openid即可) 4.上面涉及到小程序的密钥,我们生成的时候记得保存下来,不然你后面来查询不到(只能重新生成) 5.返回参数的类型是JSON字符串的数据...具体流程在我之前已经详细说明) 2.而我们拦截用户端是指定拦截路径为user,排除了登录以及查询店铺状态的请求,这里为什么要排除查询店铺状态的请求呢?...对象(java能使用的对象) 3.我们今天使用的是第二种方式 解释:获取了JSONObject对象后,我们可以调用getString()方法,里面指定对应key(就是传过来的参数名),得到的值就是具体封装的属性值

    14710

    Python 面试基础

    4.列出 Python 中可变数据类型和不可变数据类型,为什么? # 不可变数据类型:即数据被创建之后,数据的值将不再发生改变,有数值、字符、元祖类型。...Python2中使用xrange()来创建一个迭代器对象,使用range()创建一个list数组; Python3中使用range()创建迭代器对象,移除了xrange()方法。...在Python3中新添加了“类型注解”特性,可以给参数、函数返回值和变量的类型加上注解,该注解仅仅是注释而已,对代码运行不会产生任何影响,真正的变量类型还是由Python解释器决定,你所做的只是提高代码可读性...为什么选择 redis 数据库? 150.分布式爬虫主要解决什么问题 151.写爬虫是用多进程好?还是多线程好? 为什么?...这样接收端每次接收消息之前只要先接受这个固定长度字节的内容看一看接下来要接收的信息大小,那么最终接受的数据只要达到这个值就停止,就能刚好不多不少的接收完整的数据了。

    1.3K30
    领券