调用 Pyramid 中的另一个视图

2024-04-20

我的目标:在 Pyramid 中,调用另一个可调用视图,并获得一个Response在不知道有关该视图可调用的任何详细信息的情况下拒绝返回。

在我的 Pyramid 应用程序中,假设我有一个使用 view_config 装饰器定义的视图“foo”:

@view_config(route_name="foo",
             renderer="foo.jinja2")
def foo_view(request):
    return {"whereami" : "foo!"}

现在假设我想将“bar”路由到暂时执行相同操作的视图,因此它在内部调用foo_view并返回其响应:

@view_config(route_name="bar")
def bar_view(request):
   return foo_view(request)

...可是等等!那是行不通的,因为foo_view不返回Response, its renderer does.

所以,这会起作用:

@view_config(route_name="bar",
             renderer="foo.jinja2")
def bar_view(request):
    return foo_view(request)

因为它将应用与以下相同的渲染器foo_view做过。但这很糟糕,因为我现在必须通过复制渲染器值并必须知道被调用视图的渲染器来重复自己。

所以,我希望 Pyramid 中有一些可用的函数,允许调用另一个视图可调用并获取Response在不知道或关心它是如何渲染的情况下返回对象:

@view_config(route_name="bar")
def bar_view(request):
    response = some_function_that_renders_a_view_callable(foo_view, request)
    return response

什么会some_function_that_renders_a_view_callable be?

pyramid.views.render_view似乎按名称搜索视图;我不想说出我的观点。

(注意:返回 HTTPFound 导致客户端重定向到目标路由是我试图避免的。我想“内部”重定向)。


是的。有一些担忧

  • 不返回响应
  • 谓词/渲染器
  • 权限
  • 与旧请求关联的请求属性

这就是为什么你不应该从视图中调用视图作为函数,除非你知道你在做什么

金字塔创建者为服务器端重定向做了很棒的工具 -http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/subrequest.html http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/subrequest.html

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

调用 Pyramid 中的另一个视图 的相关文章

  • 理解Python中的元类和继承[重复]

    这个问题在这里已经有答案了 我对元类有一些困惑 具有继承性 class AttributeInitType object def init self kwargs for name value in kwargs items setattr
  • MySQL 的 read_sql() 非常慢

    我将 MySQL 与 pandas 和 sqlalchemy 一起使用 然而 它的速度非常慢 对于一个包含 1100 万行的表 一个简单的查询需要 11 分钟以上才能完成 哪些行动可以改善这种表现 提到的表没有主键 并且仅由一列索引 fro
  • 将新形状传递给“np.reshape”

    Within numpy ndarray reshape https docs scipy org doc numpy reference generated numpy ndarray reshape html the shape参数是一
  • 可视化时间序列时标记特定日期

    我有一个包含几年数据的时间序列 例如 ts pd Series np random randn 1000 index pd date range 1 1 2000 periods 1000 ts ts cumsum ts plot 我还有两
  • Python:如何删除圆括号内的文本?

    我试过了 但没用 return re sub myResultStats text 建议 thanks 尝试这个 return re sub myResultStats text 括号表示捕获组 因此您必须转义它们
  • 识别 Windows 版本

    我正在编写一个打印出详细 Windows 版本信息的函数 输出可能是这样的元组 32bit XP Professional SP3 English 它将支持 Windows XP 及更高版本 我一直坚持获取 Windows 版本 例如 专业
  • 使用 Pandas 滚动差异

    您好 我正在尝试使用 Pandas 滚动函数来计算下表中的滚动差异 我正在尝试生成 每月可用项目 列中的值 但没有得到任何结果 请帮忙 Item Adds Subtracts Month Monthly Available items A
  • python中remove方法的安全使用

    我从列表继承了一个 UserList 类并实现了以下方法来删除标记为已删除的条目 def purge deleted self for element in list iter self if ele mark deleted lt 1 s
  • 设置区域设置和字符串模块

    这个简单的脚本 from locale import LC ALL setlocale print setlocale LC ALL from string import letters print letters 给我这个输出 tr TR
  • Python 对象属性 - 访问方法

    假设我有一个具有某些属性的类 在 Pythonic OOP 中 如何访问这些属性是最好的 就像obj attr 或者也许编写 get 访问器 此类事物可接受的命名风格是什么 Edit 您能否详细说明使用单下划线或双前导下划线命名属性的最佳实
  • 可变和不可变类变量如何初始化?

    运行下面的示例代码 class S i 0 a def init self self i 1 self a append 1 s1 S print s1 i s1 a s2 S print s2 i s2 a 输出将是 1 1 1 1 1
  • 调试 python Web 服务

    我正在使用找到的说明here http www diveintopython net http web services user agent html 尝试检查发送到我的网络服务器的 HTTP 命令 但是 我没有看到按照教程中的建议在控制
  • 如何从 Selenium 获取元素的属性

    我正在 Python 中使用 Selenium 我想得到 val of a
  • 计算素数并附加到列表

    我最近开始尝试使用 python 解决 Euler 项目的问题 并且在尝试计算素数并将其附加到列表中时遇到了这个障碍 我编写了以下代码 但我很困惑为什么它在运行时不输出任何内容 import math primes def isPrime
  • 在 python 中计时时,我应该如何考虑 subprocess.Popen() 开销?

    编码社区的成员比我更聪明 我有一个 python 问题要问你们 我正在尝试优化一个 python 脚本 该脚本 除其他外 返回子进程执行和终止的挂钟时间 我想我已经接近这样的事情了 startTime time time process s
  • 使用 boto3 将 csv 文件保存到 s3

    我正在尝试写入 CSV 文件并将其保存到 s3 中的特定文件夹 存在 这是我的代码 from io import BytesIO import pandas as pd import boto3 s3 boto3 resource s3 d
  • 如何在特定时间启动Tornado周期性回调?

    目前在我的 Tornado 应用程序中 我正在使用定期调用回调PeriodicCallback每隔一小时 像这样 import tornado ioloop from tornado ioloop import PeriodicCallba
  • Python中如何实现相对导入

    考虑 stuff init py mylib py Foo init py main py foo init py script py script py想要进口mylib py 这只是一个示例 但实际上我只想在父目录中进行模块的相对导入
  • 矩阵求逆 (3,3) python - 硬编码与 numpy.linalg.inv

    对于大量矩阵 我需要计算定义为的距离度量 尽管我确实知道强烈建议不要使用矩阵求逆 但我没有找到解决方法 因此 我尝试通过对矩阵求逆进行硬编码来提高性能 因为所有矩阵的大小均为 3 3 我预计这至少会是一个微小的改进 但事实并非如此 为什么
  • 每行中最后一次出现 True 的索引

    我有一个二维数组 a False False False False False True True True True True True True True True True True True True True True True

随机推荐

  • 将异常从 Objective-C 引发回 Javascript

    JavascriptCore 允许我们通过 JSExport 协议将 Objective C 类公开给 javascript 比方说 在公开的 Objective C 类的方法之一中 遇到了需要引发异常的情况 有没有办法创建所述异常并引发它
  • 在 Android 中使用 Asynctask 显示进度条

    我正在尝试显示进度条 我是一名安卓初学者 当我按下按钮时 任务应该在后台运行 但它不显示进度栏 什么是问题 我无法理解 请帮我 主要活动 package com example shikkok services import java ut
  • 添加 Windows Common Controls 6.0 时对象库未注册

    我正在尝试在 Windows 7 32 位计算机上安装 Visual Studio 6 操作系统安装是从裸机进行的 我按照提到的说明进行操作here http www fortypoundhead com showcontent asp a
  • 如何检查png文件是否是减压炸弹

    我正在尝试将图像上传到网站 我发现在允许上传时可能会发生这些减压炸弹攻击png文件 和其他一些 由于我要更改上传的图像 我想确保我不会成为这次攻击的受害者 因此 当涉及到检查是否png文件是一个炸弹 我可以读取文件的标题并确保宽度和高度不超
  • 为什么我的递归阶乘方法总是返回 0? [复制]

    这个问题在这里已经有答案了 我创建了一个递归方法来计算数字的阶乘 但是 它总是返回 0 我不明白为什么 我在下面提供了我的代码 public class projectTwenty public static void main Strin
  • 在其他列定义的窗口内累积应用

    我试图将函数累积地应用于由 开始 和 完成 列定义的窗口内的值 因此 开始 和 完成 定义了值处于 活动 的时间间隔 对于每一行 我想获得当时所有 活动 值的总和 这是一个 暴力 示例 它实现了我想要的功能 是否有更优雅 更快或更有效的内存
  • store.sync() 回调

    store sync 有回调吗 我正在尝试这样做 store sync function alert 1 但它不起作用 这家店是当地的一家店 sync 没有 回调 为了实现此行为 您需要监听存储的写入事件 查看这个解决方案 https st
  • 如何在 awk 中对模式进行 if else 匹配

    我尝试过以下命令 awk search pattern print 1 如何编写上述命令的 else 部分 经典方式 https www gnu org software gawk manual gawk html If Statement
  • React Native 中的响应式图像

    我从 Facebook API 获取一些图像 我想将它们显示为响应式 宽度为 100 高度为自动 问题似乎是 React Native 裁剪了我的图像 我尝试了这些解决方案 解决方案1 https stackoverflow com a 3
  • iOS:同时使用 WiFi 和移动数据

    Setup 我的项目涉及一个 WiFi 相机 它创建一个 WiFi 热点 为了在相机上流式传输视频预览 浏览媒体 用户需要连接到相机的热点 Problem 用户无法同时使用 3G 4G 上的蜂窝数据 因为 iOS 设备已通过 WiFi 连接
  • SSLHandshakeException:握手期间远程主机关闭连接

    论坛上充斥着这个问题 但我找不到解决方案 我尝试连接 WS 但没有成功 我尝试更新 cacerts 文件 但没有效果 日志是 Allow unsafe renegotiation false Allow legacy hello messa
  • Code::Blocks 中的 wxWidgets 字体错误“GetWeightClosestToNumericValue() 中断言“numWeight > 0”失败”

    最近 每当我使用 Code Blocks 时 都会不断弹出错误对话框 它显示 此应用程序中的调试错误已失败 和 include wx font h 282 在 GetWeightClosestToNumericValue 中断言 numWe
  • 使用 com.zaxxer.hikari.HikariDataSource 时出错

    我在将 HikariCP 与 Spring 的 JdbcTemplate 集成时遇到错误 我正在使用 Spring 3 2 2 HikariCP 2 3 8 和 sybase jconn4 版本 7 0 0 弹簧配置
  • 为什么 cppreference 将 type_traits xxx_v 快捷方式定义为内联 constexpr 而不仅仅是 constexpr?

    为什么 cppreference 将 type traits xxx v 快捷方式定义为inline constexpr不仅仅是constexpr 例如 参见is integral v http en cppreference com w
  • 在 shell 中用字符串替换变量

    我将一个字符串作为参数传递给 shell 脚本 shell 脚本应该告诉我传递的参数是否是变量 像这样的东西 if z 1 then echo yes 1 is a variable and its value is 1 fi 但这给了我严
  • python子进程在引号前发送反斜杠

    我有一个字符串 它是一个应该在命令行中执行的框架命令 cmdToExecute TRAPTOOL a 字符串 ABC o 字符串 XYZ 我正在考虑该字符串具有应从命令提示符触发的整个命令 如果仔细查看字符串 cmdToExecute 您可
  • MySQL表不存在错误,但它确实存在

    有谁知道什么条件下可以收到1146 Table
  • 如何覆盖 sbt 中对某些任务的依赖

    我想在某些任务中覆盖对项目的依赖 我有一个使用 Spark 的 sbt 多项目 lazy val core Some Project val sparkLibs Seq org apache spark spark core 1 6 1 v
  • 实体框架中的集合值参数?

    在我的上一个项目中 我决定使用实体框架 一切都很顺利 直到我尝试使用 在哪里 我收到一个错误 经过一番小小的搜索后我想出了这个帖子 https stackoverflow com questions 110314 linq to entit
  • 调用 Pyramid 中的另一个视图

    我的目标 在 Pyramid 中 调用另一个可调用视图 并获得一个Response在不知道有关该视图可调用的任何详细信息的情况下拒绝返回 在我的 Pyramid 应用程序中 假设我有一个使用 view config 装饰器定义的视图 foo