制作自定义 django 视图装饰器(带参数)时遇到问题

2023-12-08

因此,我阅读了所有类似的问题并复制了他们写的内容,但我仍然遇到问题。所以我想要这样的东西

# Yes, I know django has one but I want to make my own
@rate_limit(seconds=10) 
myview(request, somearg, *args, **kwargs):
    # Return a response
...

def rate_limit(seconds=10):    
    def decorator(view):            
        def wrapper(request, *args, **kwargs):
            # Do some stuff
            return view(request, *args, **kwargs)       
        return wrapper
    return decorator

当我运行它时,我收到错误

decorator() got an unexpected keyword argument 'somearg'

所以我附加装饰器来接受 args 和 kwargs 并得到这个错误

# New decorator signature
def decorator(view, *args, **kwargs)

和错误

'function' object has no attribute 'status_code'

edit:所以解决办法就是使用。谢谢马丁·彼得斯!

@rate_limit()

代替

@rate_limit

您的第一次尝试效果很好,但您可能忘记了call the rate_limit()装饰工厂。

换句话说,如果您这样做,就会出现第一个错误:

@rate_limit
def myview(request, somearg, *args, **kwargs):

代替:

@rate_limit(seconds=10)
def myview(request, somearg, *args, **kwargs):

您也确实想使用functools.wraps()关于 Django 中使用的装饰器,特别是如果您想将其与其他 Django 装饰器混合使用,例如csrf_exempt:

from functools import wraps

def rate_limit(seconds=10):
    def decorator(view):
        @wraps(view)
        def wrapper(request, *args, **kwargs):
            # Do some stuff
            return view(request, *args, **kwargs)
        return wrapper
    return decorator

这确保了要包装的函数上设置的任何属性都被正确复制到包装器。

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

制作自定义 django 视图装饰器(带参数)时遇到问题 的相关文章

  • 更改 Inkscape 的 Python 解释器

    在使用 Inkscape 时 我不断收到错误 这似乎意味着未满足 python 2 vs 3 的期望 尽管我已经安装了它们 例如 当我尝试从模板生成新文档时 我得到 Traceback most recent call last File
  • 按 ListProperty (NDB) 对查询进行排序

    如何按 ListProperty 对查询进行排序 该模型 class Chapter ndb Model title ndb StringProperty required True version ndb IntegerProperty
  • Keras,如何获取每一层的输出?

    我已经用 CNN 训练了一个二元分类模型 这是我的代码 model Sequential model add Convolution2D nb filters kernel size 0 kernel size 1 border mode
  • ModuleNotFoundError:没有名为:crispy_forms的模块[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我可以导入 Cripy forms 但是当我运行时python3 manage py runserver 它说没有名为 Cripy
  • 如何编写高效的配对算法?

    我需要一种算法的帮助 该算法可以有效地将人们分组 并确保以前的配对不会重复 例如 假设我们有 10 位候选人 candidates 0 1 2 3 4 5 6 7 8 9 并假设我们有一个先前匹配的字典 这样每个键值对即candidate
  • 将 stdout 重定向到 Python 中的文件? [复制]

    这个问题在这里已经有答案了 如何将 stdout 重定向到 Python 中的任意文件 当长时间运行的 Python 脚本 例如 Web 应用程序 从 ssh 会话内启动并处于后台 并且 ssh 会话关闭时 应用程序将引发 IOError
  • Python 中的二进制相移键控

    我目前正在编写一些代码 以使用音频转换通过激光传输消息 文件 和其他数据 我当前的代码使用 python 中 binascii 模块中的 hexlify 函数将数据转换为二进制 然后为 1 发出一个音调 为 0 发出不同的音调 这在理论上是
  • 代理阻止网络套接字?如何绕行

    我有一个用 Python 编写的正在运行的 websocket 服务器 来自https github com opiate SimpleWebSocketServer https github com opiate SimpleWebSoc
  • Python3模拟用另一个函数替换函数

    如何使用 python 中的另一个函数来模拟一个函数 该函数也将提供一个模拟对象 我有类似以下操作的代码 def foo arg1 arg2 r bar arg1 does interesting things 我想替换的实现bar函数 让
  • 将 JSON 字符串传递给 Django 模板

    我一直在用头撞墙 试图找出为什么我无法将从 Django 模型生成的 JSON 字符串传递到模板的 javascript 静态文件中 事实证明 问题不在模型级别 使用serializers serialize 在脚本本身中放入相同的字符串将
  • 检查对象数组中的多个属性匹配

    我有一个对象数组 它们都是相同的对象类型 并且它们有多个属性 有没有办法返回一个较小的对象数组 其中所有属性都与测试用例 字符串匹配 无论该属性类型是什么 使用列表理解all http docs python org 3 library f
  • keras 预测内存交换无限期增加

    我使用keras实现了一个分类程序 我有一大组图像 我想使用 for 循环来预测每个图像 然而 每次计算新图像时 交换内存都会增加 我尝试删除预测函数内部的所有变量 并且我确信该函数内部存在问题 但内存仍然增加 for img in ima
  • 超时时杀死或终止子进程?

    我想尽可能快地重复执行子进程 然而 有时这个过程会花费太长的时间 所以我想杀死它 我使用 signal signal 如下所示 ppid pipeexe pid signal signal signal SIGALRM stop handl
  • pandas apply:函数名是否带引号的区别

    简单数据框定义示例 df pd DataFrame A 2 4 1 B 8 4 1 C 6 2 7 df A B C 0 2 8 6 1 4 4 2 2 1 1 7 尝试理解以下块中函数参数调用的差异 df apply sum df app
  • if/else 在 while 循环内正确缩进[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我开始学习 Python 编程大约几周了 我遇到了一些麻烦 下面的代码是一个小程序 用于检查列表中是否有偶数 如果找到第一个偶数
  • 写入 UDP 套接字会被阻塞吗?

    如果是的话 在什么条件下 或者 换句话说 在twisted 中运行此代码是否安全 class StatsdClient AbstractStatsdClient def init self host port super StatsdCli
  • Python:使用列表创建二叉搜索树

    我的代码的目标是从 txt 文件中获取每个单独的单词并将其放入列表中 然后使用该列表创建二叉搜索树来计算每个单词的频率 并按字母顺序打印每个单词及其频率 中的每个单词只能包含字母 数字 或 我无法用我的初学者编程知识来做的部分是使用我拥有的
  • 如何在 Python 中解析损坏的 XML?

    我无法影响的服务器发送的 XML 非常损坏 具体来说 Unicode WHITE STAR 将被编码为 UTF 8 E2 98 86 然后使用 Latin 1 转换为 HTML 实体表 我得到的是 acirc 98 86 9 个字节 位于声
  • Synapse Notebook 参考 - 使用参数从另一个笔记本调用 Synapse Notebook

    我有一个带有参数的突触笔记本 我试图从另一个笔记本调用该笔记本 我正在使用 run 命令 我应该如何将参数从基本笔记本传递到正在调用的笔记本 另外 对我来说 上述答案不起作用 作为对此问题的单独解决方案 下面是一个答案 打开笔记本并转到最右
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量

随机推荐

  • 如何从左到右移动uiview,反之亦然

    您好 我正在开发一个应用程序 我为一个视图制作了从左到右 从右到左移动的动画 并更改该视图中包含的标签的值 但是当我单击左或右按钮时 该视图将被删除新视图覆盖旧视图 所以我不想覆盖 只是我想添加新视图 我的代码是 void centerAn
  • 文本文件的行数

    我正在尝试创建一个函数 它接受文件名 即 data txt 并生成该文件的行数 data txt 24 42 45 54 67 76 89 98 12 21 99 99 33 33 下面的代码是我尝试构建一个函数 该函数接受文件名 data
  • mongoose 和 mongoJS 有什么区别?我应该使用哪个?

    我只是想知道 mongoose 和 mongoJS 有什么区别 那么 如果我们使用 mongoose 或 mongoJS 有何优点和缺点 因为我们知道连接 NodeJS 和 MongoDB 有很多依赖关系 例如猫鼬和 mongoJS Mon
  • 如何从 HTML 文件中提取元标签并在 SOLR 和 TIKA 中对其进行索引

    我正在尝试提取 HTML 文件的元标签 并通过 tika 集成将它们索引到 solr 中 我无法使用 Tika 提取这些元标记 也无法在 solr 中显示 我的 HTML 文件看起来像这样
  • 嵌套对象的默认值

    假设我有以下提供默认值的对象 default values a 0 b 0 c aa 0 bb 0 我还有另一个对象可以覆盖其中一些默认值 override values a 5 c aa 5 我想要的是将这两个对象结合起来 从而产生 co
  • 使用 C# 通过 Skype 进行通话

    我想开发一个盲人辅助软件 比如Jarvis 它是一个 C 表单应用程序 我需要将我的 C 项目与 Skype API 连接起来 以便使用 Skype 调用某个用户名 当我使用命令时Call John 它通过 Skype 呼叫 John 进行
  • 在 NodeJS 协议中实现 STARTTLS

    我正在尝试将 STARTTLS 升级添加到现有协议 当前以纯文本形式运行 首先 我使用一个简单的基于行的回显服务器 这是一个可怕的组装 没有错误处理或将数据包处理成行 但它通常只是在控制台一次发送一行到标准输入时工作 我认为我的服务器是正确
  • Haskell - Aeson:尝试解码 JSON URL Req 时得到“Nothing”

    我对 Haskell 比较陌生 现在我正在尝试更深入地了解并尝试习惯不同的流行库 现在我正在尝试 aeson 我想要做的是解析来自的 MSFT 报价请求 这就是它的样子 Global Quote 01 symbol MSFT 02 open
  • 如何通过ajax验证两个密码字段?

    我正在尝试使用 JSF 验证两个密码字段 但到目前为止还不好 我在 google 上搜索它 但一切都是关于 JSF 1 2 并且非常混乱 我正在使用 JSF 2 0 这就是我到目前为止正在做的事情
  • 如何编写 VBScript 在给定文件夹中启动快捷方式?

    Set oWS WScript CreateObject WScript Shell sLinkFile USERPROFILE Desktop TTS lnk Set oLink oWS CreateShortcut sLinkFile
  • JSTL 格式标签

    尝试在输入文本字段内填充日期值并设置其格式 我在这里做错了什么
  • Material UI 是否已经支持 CSS 容器查询?

    https developer mozilla org en US docs Web CSS CSS Container Queries Container queries for CSS都是最近的 是MUI 5 0已经能够使用它们了吗 不
  • 在 flutter webview 上访问相机

    我有网页显示用户摄像头 如何在 flutter webview 上访问摄像头 我尝试用这个 URL 来做到这一点 https webrtc github io samples src content getusermedia gum 但返回
  • 添加一个将在页面上 echo 到 uniqid 旁边的变量

    我有这个代码
  • Visual Studio 2010:缺少 dll

    我用谷歌搜索了一整天 我快疯了 好吧 这就是我的问题 我已经编写了我的 vs 项目 我已经指定了所有 包含 通过选择项目属性 gt 配置属性 gt VC 目录 和所有外部库目录 以相同的方式 然后 我通过选择项目属性 gt 链接器 gt 输
  • 如何在不影响 Pyqt5 中的小部件的情况下向主窗口添加背景图像

    我想在主窗口中添加背景图像 而不更改其中按钮的背景图像 并且还需要保持纵横比 我尝试过 self centralWidget setStyleSheet background image url The Project logo png b
  • 将 \u200e 解码为字符串

    在 Python3 中 我收到以下错误消息 ValueError time data u200e07 30 200702 38 PM does not match format m d Y I M p from datetime impor
  • 静态类与单例类

    我知道这个话题已经被讨论了一遍又一遍 但我仍然有一个疑问 我希望有人可以帮助我或指导我找到一篇关于 SO 的现有帖子 在传统的C语言中 静态变量存储在数据段中 局部变量存储在堆栈中 我认为与局部变量相比 静态变量的存储和维护成本更高 正确的
  • 如何从标准化数组中获取原始数据

    下面给出了一段简单的代码 它按行规范化数组 import numpy as np from sklearn import preprocessing X np asarray 1 2 1 4 1 2 dtype np float X nor
  • 制作自定义 django 视图装饰器(带参数)时遇到问题

    因此 我阅读了所有类似的问题并复制了他们写的内容 但我仍然遇到问题 所以我想要这样的东西 Yes I know django has one but I want to make my own rate limit seconds 10 m