Flask - 输入数据比 @api.expect 更严格?

2023-12-25

在我的 Flask-restplus API 中,我不仅想检查输入数据,如下例所示

resource_fields = api.model('Resource', {
    'name': fields.String(default = 'string: name', required = True),
    'state': fields.String(default = 'string: state'),
})

@api.route('/my-resource/<id>')
class MyResource(Resource):
    @api.expect(resource_fields, validate=True)
    def post(self):
        ...

必须有“name”字段,并且可能有“state”字段,但还要检查是否没有其他字段(如果发生这种情况,则引发错误)。 还有另一个装饰器吗?我可以通过自定义函数检查输入数据的正确性吗?


不要在字段中使用字典,而是尝试使用请求解析器 https://flask-restplus.readthedocs.io/en/stable/api.html#flask_restplus.reqparse.RequestParser(flask-restplus 接受两者记录here https://flask-restplus.readthedocs.io/en/stable/swagger.html#the-api-expect-decorator。这样你就可以调用parser.parse_args(strict=True)这会抛出一个400 Bad Request如果输入数据中存在任何未知字段,则例外。

my_resource_parser = api.parser()
my_resource_parser.add_argument('name', type=str, default='string: name', required=True)
my_resource_parser.add_argument('state', type=str, default='string: state')

@api.route('/my-resource/<id>')
class MyResource(Resource):
    def post(self):
        args = my_resource_parser.parse_args(strict=True)
        ...

有关如何将 request_parser 与您的资源一起使用的更多指导,请查看待办事项示例应用程序 https://github.com/noirbizarre/flask-restplus/blob/4b58cb3e13b7720cb35a39f50d4683770ab72574/examples/todo.py#L57在 Flask-restplus 仓库中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask - 输入数据比 @api.expect 更严格? 的相关文章

  • 如何在 Windows 64 上安装 NumPy?

    NumPy 安装程序在注册表中找不到 python 路径 无法安装 需要 Python 2 5 版本 但在注册表中未找到该版本 OK 我必须修改注册表吗 我已经修改了 PATH 以指向Python25安装目录 我可以检查一下您使用的是什么安
  • 使用 matplotlib 从“列表列表”绘制 3D 曲面

    我已经搜索了一些 虽然我可以找到许多有用的网格网格示例 但没有一个清楚地表明我如何将列表列表中的数据转换为可接受的形式 以适应我所讨论的各种方式 当谈到 numpy matplotlib 以及我所看到的建议的术语和步骤顺序时 我有点迷失 我
  • Python 3 os.urandom

    在哪里可以找到完整的教程或文档os urandom 我需要获得一个随机 int 来从 80 个字符的字符串中选择一个字符 如果你只需要一个随机整数 你可以使用random randint a b 来自随机模块 http docs pytho
  • Twisted 的 Deferred 和 JavaScript 中的 Promise 一样吗?

    我开始在一个需要异步编程的项目中使用 Twisted 并且文档非常好 所以我的问题是 Twisted 中的 Deferred 与 Javascript 中的 Promise 相同吗 如果不是 有什么区别 你的问题的答案是Yes and No
  • Sublime Text 插件开发中的全局 Python 包

    一 总结 我不知道 Sublime Text 插件开发人员如何使用 Sublime Text 查找全局 Python 包 而不是 Sublime Text 目录的 Python 包 Sublime Text使用自己的Python环境 而不是
  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • 如何检查python xlrd库中的excel文件是否有效

    有什么办法与xlrd库来检查您使用的文件是否是有效的 Excel 文件 我知道还有其他库可以检查文件头 我可以使用文件扩展名检查 但为了多平台性我想知道是否有任何我可以使用的功能xlrd库本身在尝试打开文件时可能会返回类似 false 的内
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • 使用Python计算目录的大小?

    在我重新发明这个特殊的轮子之前 有没有人有一个很好的例程来使用 Python 计算目录的大小 如果例程能够很好地以 Mb Gb 等格式格式化大小 那就太好了 这会遍历所有子目录 总结文件大小 import os def get size s
  • Geodjango距离查询未检索到正确的结果

    我正在尝试根据地理位置的接近程度来检索一些帖子 正如您在代码中看到的 我正在使用 GeoDjango 并且代码在视图中执行 问题是距离过滤器似乎被完全忽略了 当我检查查询集上的距离时 我得到了预期距离 1m 和 18km 但 18km 的帖
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx
  • python 线程安全可变对象复制

    Is 蟒蛇的copy http docs python org 2 library copy html模块线程安全吗 如果不是 我应该如何在 python 中以线程安全的方式复制 deepcopy 可变对象 蟒蛇的GIL http en w
  • TKinter 中的禁用/启用按钮

    我正在尝试制作一个像开关一样的按钮 所以如果我单击禁用按钮 它将禁用 按钮 有效 如果我再次按下它 它将再次启用它 我尝试了 if else 之类的东西 但没有成功 这是一个例子 from tkinter import fenster Tk

随机推荐

  • 如何将所有祖先设置页面包含在 FitNesse 子维基中?

    我在根级别有一个设置页面 工作正常 但是 当我在 FitNesse 中添加子维基时 我想在子维基级别放置一个设置页面 这会被包含在内 但根级别的 SetUp 不会包含在内 例如 具有以下结构 Foo suite SetUp TestPage
  • 如何管理字符串数组中的连续变化值[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个字符串数组 但数组中的值正在不断变化 除了删除项目和更改索引位置之外 还有其他管理数组的方法吗 public int deviceI
  • 使用 Node http 模块上传文件

    如何使用节点 http 模块 并且没有第 3 方库 将文件上传到远程服务器 我尝试了以下方法 但它不起作用 我在服务器上没有收到任何数据 function writeBinaryPostData req filepath var fs re
  • Matlab:比较两个不同长度和不同值的向量?

    假设我有两个长度不同的向量 A 和 BLength A is not equal to Length B 并且向量 A 中的值与向量 B 中的值不同 我想将 B 的每个值与 A 的值进行比较 比较意味着值 B i 是否与向量 B 的值几乎相
  • 为什么“case”和“when > 2”不起作用?

    为什么这不起作用 case ARGV length when 0 abort Error 1 when gt 2 abort Error 2 end 这不是有效的 ruby 语法 你需要的是 case when ARGV length 0
  • Objective-C 中 C++ STL 容器“pair”的等价物?

    我是 Objective C 的新手 所以请不要对我做出太多评价 我想知道 是否有可以在 Objective C 中使用的 C STL 对容器的等效项 我想构建一个包含与 NSBool 关联的 NSInteger 的数组 我知道我可以使用一
  • 我可以有一个没有模型的 Django 表单吗

    我的模板中可以有一个不受模型支持的表单吗 我不需要存储数据 只需要该数据在视图中生成我自己的 POST 请求 模板 带有文本字段的表单 查看 从表单获取数据 并生成另一个请求 Flow gt 表单提交获取调用视图的 url def form
  • 如何收到进入挂起模式的通知?

    我希望当系统即将挂起或睡眠 之前 时通知我的应用程序 无论是否获取唤醒锁 我不想禁止该过程 而只想收到通知 谢谢 L None
  • Google Chrome 弹出扩展中的 Javascript 未运行

    嗨 我遇到了一个非常奇怪的问题 我有一个基本的 chrome 扩展 它有一个默认的 popup html 文档 定义如下 p Hello p
  • 从 Django REST 框架中的响应中删除计数、下一个、上一个

    当我在 API 上执行 GET 时 结果中始终包含以下内容 count 2013 next http 127 0 0 1 8000 api items page 2 previous null results 如何删除计数 下一个和上一个字
  • java - 该进程无法访问该文件,因为该文件正在被另一个进程使用

    我有一段代码可以监视目录中是否添加文件 每当一个新文件添加到目录中时 该文件的内容就会被选取并发布到 kafka 上 然后该文件将被删除 当我发出单个请求时 这是有效的 但一旦我将我的代码接受来自 jMeter 的 5 或 10 个用户请求
  • BST的递归插入

    我已经制作了一个使用循环插入 BST 的函数 并且它工作得很好 现在 当我编写使用递归来执行此操作时 我不知道为什么它不能正常工作 但是根据我的逻辑 逻辑是正确的 似乎没有新节点被添加到 BST 树中 并且在插入函数结束后树头再次变为 NU
  • 抓取整个网站[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找有关抓取和下载整个公司网站的程序的建议 该网站由已停止工作的 CMS 提供支持 修复它的成本很
  • 使用单元格公式从文件路径获取父文件夹路径

    栏内A我有 20000 行 文件名和文件路径 C person microsoft ygkyg mmddyy 文件名 xls server 41 performance mmddyy 文件名 doc etc 栏内B我只想获取父文件夹路径 有
  • PHP htmlspecialchars 错误

    为什么会这样 trader details array walk trader details htmlspecialchars 给出这个错误 Severity Warning Message htmlspecialchars expect
  • ASP.NET:验证用于选择日期(月、日、年)的 3 个下拉框的最佳方法是什么?

    我有两组用于开始日期和结束日期的下拉菜单 每个日期都是通过从 3 个单独的下拉列表中选择月 日和年来创建的 目前 我在所有下拉列表中都有RequiredFieldValidators 如果尚未选择任何内容 则仅显示 但我需要验证结束日期是否
  • 从 UICollectionView 获取单元格的屏幕位置

    这与其说是一个问题 不如说是对如何解决这个问题的解释 首先要意识到的是UICollectionView确实继承自UIScrollView 因此 使用滚动视图的内容进行标准查找是最好的解决方案 这是我正在解决的问题 I had a UICol
  • 使用 android:id="@+android:id/my_id" 时出现“无法解析符号”错误

    当我将 android id background 添 加到命名空间时 Lint 抱怨它 无法解析符号 即使我请求添加它而不是调用它 代码按编写的方式工作 但错误仍然存 在 当我改变时
  • C++ 二元运算符的优先顺序

    以下参数按什么顺序测试 在 C 中 if a b c 我刚刚在我们的应用程序中看到了这段代码 我讨厌它 我想添加一些括号来澄清顺序 但我不想添加括号 直到我知道我将它们添加到正确的位置 编辑 接受答案并跟进 此链接提供了更多信息 但并不完全
  • Flask - 输入数据比 @api.expect 更严格?

    在我的 Flask restplus API 中 我不仅想检查输入数据 如下例所示 resource fields api model Resource name fields String default string name requ