使用内联回调

2023-11-24

我是 Twisted 的新手,我正在尝试编写一个简单的资源 显示数据库中的名称列表,这是我的代码的一部分:

#code from my ContactResource class
def render_GET(self, request):
    def print_contacts(contacts, request):
        for c in contacts:
            request.write(c.name)
        if not request.finished:
            request.finish()
    d = Contact.find() #Contact is a Twistar DBObject subclass
    d.addCallback(print_contacts, request)
    return NOT_DONE_YET

我的问题是:如何更改此方法以使用 inlineCallbacks 装饰器?


A render_GET方法可能不会返回Deferred。它可能只返回一个字符串或NOT_DONE_YET。任何装饰有inlineCallbacks将返回一个Deferred。所以,你可以不装饰render_GET with inlineCallbacks.

当然,没有什么可以阻止您调用您想要的任何其他函数render_GET,包括返回一个Deferred。只需扔Deferred离开而不是返回render_GET(当然,请确保Deferred永远不会因失败而触发,或者扔掉它你可能会错过一些错误报告......)。

因此,例如:

@inlineCallbacks
def _renderContacts(self, request):
    contacts = yield Contact.find() 
    for c in contacts:
        request.write(c.name)
    if not request.finished:
        request.finish()


def render_GET(self, request):
    self._renderContacts(request)
    return NOT_DONE_YET

我建议至少看一下txyoga and klein如果您打算使用 Twisted 进行任何严肃的 Web 开发。即使您不想使用它们,它们也应该为您提供一些关于如何构建代码并完成像这样的各种常见任务的好主意。

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

使用内联回调 的相关文章

  • Python 中的字节数组

    如何在 Python 中表示字节数组 如 Java 中的 byte 我需要用 gevent 通过网络发送它 byte key 0x13 0x00 0x00 0x00 0x08 0x00 在Python 3中 我们使用bytes对象 也称为s
  • Python在postgresql表中查找带有单引号符号的字符串

    我需要从 psql 表中查找包含多个单引号的字符串 我当前的解决方案是将单引号替换为双单引号 如下所示 sql query f SELECT exists SELECT 1 FROM table name WHERE my column m
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 当我在 Pandas 中使用 df.corr 时,我的一些列丢失了

    这是我的代码 import numpy as np import pandas as pd import seaborn as sns import matplotlib pyplot as plt data pd read csv dea
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • 更改 python tkinter canvas 中的线坐标

    我画了一条线tkinter Canvas现在我想移动一端 这可能吗 例如和itemconfig import tkinter tk tkinter Tk canvas tkinter Canvas tk canvas pack line c
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • 由于 json 字符串化 dict 键导致数据丢失

    考虑下面的例子 gt gt gt import json gt gt gt d 0 potato 0 spud gt gt gt json dumps d 0 potato 0 spud gt gt gt json loads json d
  • Python]将两个文本文件合并为一个(逐行)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是蟒蛇新手 我想做的是将文件 a 和文件 b 逐行合并到一个文件中 例如 text file a a n b n c text fi
  • 更改 Python Cmd 模块处理自动完成的方式

    我有一个 Cmd 控制台 设置为自动完成 Magic the Gathering 收藏管理系统的卡牌名称 它使用文本参数在数据库中查询卡片 并使用结果自动完成 建议卡片 然而 这些卡片名称有多个单词 Cmd 会从last到行尾的空间 例如
  • Django 模型:如何使用 mixin 类来覆盖 django 模型以实现 save 等功能

    我想在每次保存模型之前验证值 所以 我必须重写保存函数 代码几乎是一样的 我想把它写在 mixin 类中 但失败了 我不知道如何写 super func 我英语不好 抱歉 class SyncableMixin object def sav
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • 如何为所有用户安装 Anaconda python?

    Anaconda python 发行版 https store continuum io cshop anaconda 非常方便地部署科学计算环境 SCE 并根据需要切换python版本 默认情况下 安装会将 python 定位到 anac

随机推荐

  • 如何更改videojs控制栏元素顺序的位置

    我的网站使用 video js 播放器 我想更改控制栏元素的位置 目前 它显示播放 暂停 音量 进度条和全屏 我怎样才能更改订单 我的代码如下 var videojs videojs video player techOrder youtu
  • 如何阻止软键盘调整 Android 手机上 Chrome 浏览器窗口的大小?

    我看到这个问题被问到here here and here 但找不到明确和 或可行的答案 我在 Samsung A7 2018 上使用 Android 9 运行 Chrome 75 会发生什么 我有一个需要键盘输入的 html 表单 当在 C
  • JBoss 文件打开过多错误

    就在上周 我在访问 JBoss v 4 2 2 Web 应用程序时遇到了问题 当我转到主页时 我收到 java lang NullPointerException 错误页面 查看 JBoss 日志输出后 似乎打开了太多文件 那么我该如何关闭
  • 读取 Unicode 文件 C++

    我有一个简单的问题要问 我有一个以 FFFE 开头的 UTF 16 文本文件要读取 有哪些C 工具可以处理这种文件 我只想阅读它 过滤一些行 然后显示结果 它看起来很简单 但我只有处理普通 ascci 文件的经验 而且我很着急 我正在使用
  • 同步单例的正确使用?

    所以我正在考虑建立一个业余爱好项目 这是一种临时性的事情 只是为了温习我的编程 设计 它基本上是一个多线程网络蜘蛛 更新相同的数据结构object gt int 因此 为此使用数据库绝对是大材小用 我唯一能想到的是用于包含我的数据结构的线程
  • mysql:使用SET还是很多列?

    我正在使用 PHP 和 MySQL 我有以下记录 具有各种分层 事件类型 的事件 事件可以有多个类别和子类别 但此类类别和子类别的数量是固定的 带时间戳 设置桌子的最佳方式是什么 我是否应该有一堆列 30 左右 其中包含表示是或否的枚举 指
  • 如何递归地查找模块中的所有模块和类?

    如果你有 module A class B end end 您可以通过 A constants 找到 B 和类似的类 但是 在 Ruby 1 9 3 中 如果 B 在另一个模块中 则无法获取 B 在 Ruby 1 8 7 中您可以 modu
  • UI布局初始化错误-center-pane元素不存在

    我正在使用具有 centerLayout westLayout northLayout 的布局结构 当我运行该文件时 出现以下错误 UI 布局初始化错误 中心窗格元素不存在 中心窗格是必需的元素 我的模板是
  • Flutter 问题:滚动时列表视图重建项目

    当我滚动到列表视图的底部时 底部的项目将被重建 同样 当我滚动到顶部时 我的第一个项目会被重建 第一个项目是一张带有可选筹码的卡片 当发生这种情况时 该筹码将被取消选择 入口 动画也会重播 我怎样才能阻止这个 这是基本代码 它使用 simp
  • 如何修复NoSuchMethodError?

    我使用 Scala 2 10 0RC1 和 sbt 0 12 1 是什么原因导致此运行时错误以及如何修复此错误 在 2 9 2 上运行良好 确切的错误消息是 java lang NoSuchMethodError scala Predef
  • 如何使用 ScalaMock 模拟按名称调用参数(如 getOrElse)?

    我希望能够模拟返回值getOrElse方法 以便它返回传递的内容orElseScalaMock 的按名称调用参数 trait ToBeMocked def getOrElse arg Int orElse gt String String
  • 向测试厨房添加属性

    我正在尝试覆盖中的属性java食谱与测试厨房 当我尝试跑步时kitchen converge default centos 64 出现严重的 YAML 错误 driver name vagrant customize memory 1024
  • Angular4x:带有过期参数的 ngx-cookie-service

    我正在使用 ngx cookie service 组件 但是一旦我关闭浏览器 cookie 就会消失 也许我必须设置过期参数 但我无法获取它 如下文档所述 set name string value string expires numbe
  • Scala 宏:“无法从具有未解析类型参数的类型 T 创建 TypeTag”

    我正在玩 Scala 新宏并发现了这个gist from akshaal 看起来我不太明白 鉴于以下特征 fieldsMacro 或多或少与 akshaal 示例中的相同 case class Field I lt AnyRef name
  • InternalError_:频谱扫描错误。 S3 到 Redshift 复制命令

    我正在尝试使用 COPY 命令将一些数据从 S3 存储桶复制到 redshift 表 文件的格式是 PARQUET 当我运行执行 COPY 命令查询时 出现 InternalError Spectrum Scan Error 这是我第一次尝
  • 自从我将 Firebase 应用程序升级到新控制台(仅限)后,Facebook 登录不再有效

    自从我升级了 Firebase 控制台 仅 sdk 尚未更新 以来 我有一个具有 Facebook 和电子邮件登录功能的工作应用程序 Firebase 3 0 之前的应用程序版本之前可以运行 但在控制台升级后 它不再能够使用 Faceboo
  • 在 MATLAB 中获取排列的映射

    假设我有两个数组 其中一个是另一个的排列 A 2 1 5 3 7 B 7 2 1 3 5 两个数组中都没有重复 如何获得两者之间的排列映射 E g A gt B应该 2 3 5 4 1 意思是 A 1 gt B 2 A 2 gt B 3 A
  • jQuery(事件):监视元素样式

    假设有这样的元素 div class watch me style display none Watch Me Please div 正如我们所看到的 上面的元素样式是display none 我怎样才能制作脚本来观看这个元素 当该元素样式
  • C++ 中的根基类

    NET 中的每个对象都 直接或间接 继承自公共根基 Object C 中有这样通用的对象根吗 我该如何通过any对象函数 public void DoSomeStuff object o 编辑 为了澄清 目的 在该函数中我想调用指向成员函数
  • 使用内联回调

    我是 Twisted 的新手 我正在尝试编写一个简单的资源 显示数据库中的名称列表 这是我的代码的一部分 code from my ContactResource class def render GET self request def