WSGI:start_response函数的目的是什么

2024-01-10

你能提供一个现实生活中的例子吗WSGI http://wsgi.readthedocs.org/en/latest/ start_response http://webpython.codepoint.net/wsgi_application_interface功能? (Web 服务器向 wsgi 应用程序提供该功能)

我无法理解purpose的介绍start_response.

(我读过大约 10 篇关于 WSGI 标准的相同文本。他们都说“WSGI 标准是……”没有人说“WSGI 是这样设计的”为了..." :()


你能提供一个 WSGI 的真实例子吗start_response()功能?

嗯,start_response()函数为mod_wsgi http://en.wikipedia.org/wiki/Mod_wsgi定义于第 2678 行mod_wgsi.c http://code.google.com/p/modwsgi/source/browse/mod_wsgi/mod_wsgi.c#2678

他们没有人说“WSGI 如此设计是为了……”

WSGI 在这方面的设计似乎没有太多理由PEP3333 http://www.python.org/dev/peps/pep-3333/。纵观整个web-sig 邮件列表档案 http://mail.python.org/pipermail/web-sig/, 我碰到这条信息 http://mail.python.org/pipermail/web-sig/2010-April/004366.html...

前段时间我反对删除 start_response 的决定 下一个版本 WSGI 中的函数,使用以下事实作为基本原理: 没有start_callable,异步扩展是不可能的 支持。

现在我发现删除 start_response 也会使 不可能支持协程(或者至少某些协程 用法)。

[...]

...它启动了一个关于这部分实现的基本原理的长线程,可能值得一读。

如果您确实想了解 WSGI 接口这方面的起源,则必须阅读 WSGI 接口之间的大量消息这个初稿 http://mail.python.org/pipermail/web-sig/2003-December/000394.html2003 年 12 月,以及这个后来的草案 http://mail.python.org/pipermail/web-sig/2004-August/000518.html2004年8月。


Update

它如何与其他协议兼容?

我不太确定你的意思。忽略所有早期草案,WSGI 1.x 接口可以以两种不同的方式使用。

“已弃用”的方法是......

def application(environ, start_response):
    write = start_response(status, headers)
    write('content block 1')
    write('content block 2')
    write('content block 3')
    return None

...“推荐”方法是...

def application(environ, start_response):
    start_response(status, headers)
    return ['content block 1',
            'content block 2',
            'content block 3']

想必,您可以同时使用两者,...

def application(environ, start_response):
    write = start_response(status, headers)
    write('content block 1')
    return ['content block 2',
            'content block 3']

...但结果的行为可能是未定义的。

从外观上看这篇博文 http://dirtsimple.org/2007/02/wsgi-middleware-considered-harmful.html,正在考虑的新 WSGI 2.x 方法是......

def application(environ):
    return (status,
            headers,
            ['content block 1',
             'content block 2',
             'content block 3'])

...这消除了start_response()可调用,而且,显然,write()可调用,但没有任何迹象表明它何时(甚至是否)可能取代 WSGI 1.x。

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

WSGI:start_response函数的目的是什么 的相关文章

  • 在二维数组中进行所有可能的组合

    我正在尝试制作具有所有可能组合的 4x4 16 像素黑白图像数组 我制作了以下数组作为模板 template 0 0 0 0 start with all white pixels 0 0 0 0 0 0 0 0 0 0 0 0 然后我想迭
  • 在 SQLAlchemy 中,过滤器是在连接之前还是之后应用?

    使用 SQLAlchemy 我执行如下查询 import models as m import sqlalchemy as sa s session maker q s query m ShareCount m Article join m
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • 使用不在证书存储中的客户端证书

    我正在尝试使用我的客户端证书对 WebService 进行身份验证 但是 由于某些原因 我解释 我不想从存储加载证书 而是从光盘读取它 下列 gw is teh WebService client X509Certificate cert
  • 在 Python 中延迟转置列表

    所以 我有一个延迟生成的可迭代的三元组 我试图弄清楚如何将其转换为 3 个可迭代对象 分别由元组的第一个 第二个和第三个元素组成 然而 我希望这件事能懒惰地完成 所以 举例来说 我希望 1 2 3 4 5 6 7 8 9 将变成 1 4 7
  • 在 python 中发送标头[重复]

    这个问题在这里已经有答案了 我有以下 python 脚本 我想发送 假 标头信息 以便我的应用程序就像 Firefox 一样运行 我怎么能这么做呢 import urllib urllib2 cookielib username passw
  • Discord.py 斜线命令在 cogs 中不起作用

    我正在构建一个不和谐的机器人 并且想要在 cogs 内使用斜杠命令 但这些命令不显示或工作 这是代码 cog guild ids 858573429787066368 861507832934563851 class Slash comma
  • 如何在plotly(python)中的刻度标签和图形之间添加空格?

    如果我使用绘图创建水平条形图 则每个条形的标签都与图表相对应 我想在标签和图表之间添加一些空间 填充 边距 我怎样才能做到这一点 Example import plotly offline as py import plotly graph
  • 在多核上运行 python 线程

    我知道Python 2 7不允许在不同的内核上运行多个线程 你需要使用multiprocessing模块以实现某种程度的并发性 我正在看concurrent futuresPython 3 4 中的模块 是否使用ThreadPoolExec
  • pandas 数据框的最大大小

    我正在尝试使用读取一个有点大的数据集pandas read csv or read stata功能 但我不断遇到Memory Errors 数据帧的最大大小是多少 我的理解是 只要数据适合内存 数据帧就应该没问题 这对我来说不应该是问题 还
  • 如何在Python中手动对数字列表进行排序?

    规格 Ubuntu 13 04 Python 3 3 1 背景 Python的初学者 遇到了这个 手动排序 问题 我被要求做的事情 让用户输入 3 个数值并将它们存储在 3 个不同的变量中 不使用列表或排序算法 手动将这 3 个数字从小到大
  • argparse 不检查位置参数

    我正在创建一个脚本 它使用 argparse 接受位置参数和可选参数 我已经阅读了 Doug 的教程和 python 文档 但找不到答案 parser argparse ArgumentParser description script t
  • 类变量:“类列表”与“类布尔值”[重复]

    这个问题在这里已经有答案了 我不明白以下示例的区别 一次类的实例可以更改另一个实例的类变量 而另一次则不能 示例1 class MyClass object mylist def add self self mylist append 1
  • Pygame:有人可以帮我实现双跳吗?

    我知道已经有其他关于此问题的帖子了 但我的运动系统与我发现的有点不同 所以随后我问这个问题 我的运动系统基于一个名为的命名元组Move up left right down 然后就是这个 def update self move block
  • Kivy TextInput 水平和垂直对齐(文本居中)

    如何在 Kivy 的 TextInput 中水平居中文本 I have the following screen But I want to centralize my text like this 这是我的 kv 语言的一部分 BoxLa
  • Django 1.7:如何使用 html/css 文件作为模板发送电子邮件

    从 Django 1 7 开始 可以send email 使用新参数 html message 不幸的是 没有关于如何使用它的全面指南 新手友好 或者至少我找不到它 我需要使发送的电子邮件变得漂亮 因此 我试图弄清楚如何将我的消息包含到 h
  • 将二进制数据视为文件对象?

    在此代码片段 由另一个人编写 中 self archive是一个大文件的路径并且raw file是以二进制数据形式读取的文件内容 with open self archive rb as f f seek offset raw file s
  • 尝试 numba 时出现巨大错误

    我在使用 numba 时遇到了大量错误 讽刺的是 正确的结果是在错误之后打印的 我正在使用最新的 Anaconda python 并安装了 numba conda install numba 一次在 Ubuntu 13 64 位和 anac
  • 在自定义 keras 层的调用函数中传递附加参数

    我创建了一个自定义 keras 层 目的是在推理过程中手动更改前一层的激活 以下是基本层 它只是将激活值乘以一个数字 import numpy as np from keras import backend as K from keras
  • 将二进制数转换为包含每个二进制数的数组

    我试图将二进制值转换为每个 1 0 的列表 但我得到默认的二进制值而不是列表 我有一个字符串 我将每个字符转换为二进制 它给了我一个列表 其中每个字符都有一个字符串 现在我试图将每个字符串拆分为值为 0 1 的整数 但我什么也得不到 if

随机推荐

  • 将泛型参数与 impl 中的关联类型相匹配

    我有一个具有关联类型和通用结构的特征 trait Generator type Foo fn generate self gt Self Foo struct Baz
  • Eclipse RCP 应用程序中的项目特定首选项页面

    我想为我们的产品启用基于项目的首选项对话框 我偶然发现了两个不同的问题 我如何存储这些项目相关信息 作为一种有根据的猜测 我会尝试这个 IPreferenceStore store new ScopedPreferenceStore new
  • 找出SQL查询的历史记录

    在服务器上执行了更新SQL查询 导致后来出现很多问题 如何获取过去 2 个月执行的更新查询的列表 以便我可以准确跟踪有问题的 SQL 查询 select v SQL TEXT v PARSING SCHEMA NAME v FIRST LO
  • 如何在 SwiftUI NavigationLink 中删除不透明动画

    当点击 NavigationLink 时 它会稍微降低不透明度 有没有办法禁用此功能 我尝试使用 buttonStyle PlainButtonStyle 但这并没有达到预期的效果 它嵌入在滚动视图中 在可定制性方面优于列表 ScrollV
  • 我可以使用 Mojolicious 构建静态网站吗?

    是否可以使用Mojolicious模板系统来构建静态网站 我正在尝试使用这样的 骨架 脚本 use Mojo Template use Mojolicious Plugin DefaultHelpers use Mojolicious Pl
  • 在没有秘密的情况下解码 JWT 令牌

    我通过 JWT 使用私钥创建了一个令牌 但是当我尝试对其进行解码时http kjur github io jsjws tool jwt html http kjur github io jsjws tool jwt html 我发现令牌可以
  • 使用 WCF 以及 jquery(AJAX) 和 html 客户端的文件上传服务

    我想知道如何通过使用 jquery 进行 AJAX 调用来使用 WCF 上传文件 您可以使用一些现成的 JQuery 插件 例如 Ajax文件上传 http www phpletter com Our Projects AjaxFileUp
  • 页面加载完成后如何执行JavaScript函数?

    页面加载完成后如何执行JavaScript函数 Use the onload像这样的事件 window onload function your code here
  • RecyclerView onClick 用于多个按钮并从 Activity 进行处理

    我在用着RecyclerView with CardView并在里面CardView有 2 个按钮 现在 已经实施了onClick事件通过实施View OnClickListener by the ViewHolder静态类并覆盖事件 其工
  • 如何使用 Prototype 自动调整文本区域大小?

    我目前正在为我工 作的公司开发一个内部销售应用程序 并且我有一个允许用户更改送货地址的表单 现在 我认为如果我用于主要地址详细信息的文本区域仅占据其中文本的区域 并且在文本发生更改时自动调整大小 那么它看起来会好得多 这是当前的屏幕截图 有
  • 如何加载页脚之前的内容?

    我的页脚是在内容加载之前加载的 我的导航栏中有多个按钮 单击时会打开一个新组件 当用户点击事件时 它会在从 api 加载事件后发出 此时页脚加载正常 但之后我转到另一个链接 比如说特殊链接 然后页脚在活动之前加载 我尝试如下 事件组件 ts
  • 在选项卡栏控制器之前显示登录屏幕

    我正在做一个 Twitter 应用程序 并在 AppDelegate 上 didFinishLaunchingWithOptions如果该对象上的 NSUserDefaults 为空 我将使用下一个代码来加载登录视图 NSUserDefau
  • 基于 PySpark 中另一个数据帧的列值创建指标数组

    我有两个数据框 df1 id1 items1 0 B C D E 1 E A C 2 F A E B 3 E G A 4 A C E B D and df2 id2 items2 001 A C 002 D
  • Developer M 预览版中的共享库

    我正在尝试在 Android M 开发预览版上测试我的应用程序 我的应用程序使用共享库 我已将其放置在 Android Studio 内的 jni libs armeabi 中 我相信当它召唤的时候System loadLibrary my
  • 如何减小 Puppeteer 的大小

    我使用 Puppeteer 进行网页抓取 并使用我制作的一个小型 NodeJs Web 应用程序 该网络应用程序托管在 Heroku 上并使用jontewks puppeteer heroku buildpack到作品 我面临的问题是 由于
  • Firebase 查询方法不起作用

    这是我的数据树 look twopointo 0 comment Hi Text1 Hello Text2 Bonsoir type Bonjour version 4 0 6 由于某种原因查询不起作用 button setOnClickL
  • Javascript 数组映射 2D 数组

    我正在尝试聚合下面的数组 arr 以便获得如下输出 期望的输出 2011 04 11 开放 6 2011 04 11 关闭 4 但我得到 Output 2011 04 11 开园 6 2011 04 11 闭园 4 我如何获取 javasc
  • VSTS (Azure DevOps) 中的 Selenium 屏幕截图

    根据我的搜索 它应该 正常工作 This https learn microsoft com en us azure devops test collect screenshots and video view vsts是我找到的最好的文章
  • 处理文件时,如何获取当前行号?

    当我使用下面的构造循环文件时 我还需要当前行号 with codecs open filename rb utf8 as f retval for line in f process line 是否存在类似的东西 for line line
  • WSGI:start_response函数的目的是什么

    你能提供一个现实生活中的例子吗WSGI http wsgi readthedocs org en latest start response http webpython codepoint net wsgi application int