【问题标题】:Looking for a diagram to explain WSGI [closed]寻找解释 WSGI 的图表 [关闭]
【发布时间】:2010-11-21 03:31:50
【问题描述】:

为了帮助我进一步了解 WSGI,我正在寻找一个解释应用程序流程的图表,从 web 服务器(例如 apache)到许多中间件到“代码”(如 print "hello world" 位)。

我已经阅读了来自 wsgi.org 的各种关于 WSGI 的文章,但它对我来说仍然没有“点击”,至于图表,谷歌并没有带来任何有用的东西,除了 django 的this,虽然很有趣,但值得期待用户了解中间​​件如何链接等。

既然“一张图片值一千字”,有没有比这更简单/更简单的图表?

【问题讨论】:

  • 你看过python.org/dev/peps/pep-0333吗?够简单吗?你看过docs.python.org/library/wsgiref.html吗?够简单吗?你看过werkzeug.pocoo.org吗?够简单吗?
  • @S.Lott:对不起,我在哪里说我在寻找 WSGI 的长描述?
  • @Phillip Oldham:您是说 WSGI 描述中的示例应用程序描述得不够好?这三个来源中哪一个更接近您正在寻找的内容?当您有示例代码时,为什么要专注于图表?示例代码有什么问题?
  • @S.Lott:有时示例代码不足以说明基本概念。这就是白板、UML、信息图形等如此有用的原因。几个方框和箭头往往胜过经过深思熟虑的书面描述。
  • @S.Lott 找图解释WSGI你不明白的哪一部分?

标签: python diagram wsgi


【解决方案1】:

由于我看伊恩的花哨的管子一无所获,我决定自己画一个图表。我希望它能帮助人们理解 WSGI 流是如何工作的。只要您有如何改进它的建议,我愿意修改它。它是使用LUCIDCHART webapp 创建的。原图可以找到here,高质量的PNG是here

【讨论】:

    【解决方案2】:

    我喜欢 Ian Bicking 的 WSGI - A Series of Tubes 中的 the diagram

    【讨论】:

    • 完美!所需要的只是一些尖箭头、一些彩色框和“理解”插槽。谢谢!
    • 而且蜡笔风格让人耳目一新:)
    • 哈哈,这个演示很不错。我不知道它存在。演示文稿的作者 FWIW 创建了 Paste,我认为它是学习 WSGI 的最佳资源之一。
    • 通过查看 Ian 的精美管子(图表?),我几乎一无所获,并决定创建我自己的管子,您可以在我的 answer 中看到这个问题。
    • 您能在此处提供答案中的图片吗?目前提供的链接不可用。
    【解决方案3】:

    我不知道我是否可以提供您正在寻找的答案,但您链接到的图表显示的不仅仅是 wsgi。 wsgi 层在图的第二行结束。之后,它是特定于应用程序的。

    WSGI 更像是一个接口定义或契约,归结为您以某种方式提供了一个函数,该函数接受一个表示当前请求内容的字典(环境)。以及在您准备好开始响应时调用的函数(start_response)。

    您调用的 start_response 方法需要一个 HTTP 状态码('200 OK')和一个 HTTP 标头列表([('content-type', 'text/html')])。

    def say_hello(envron={},start_response):
        start_response('200 OK', [('content-type', 'text/html')])
        return ["Hello from WSGI"]
    

    我认为将您的网络服务器链接到您的 wsgi 应用程序是特定于您的网络服务器的,关于网络服务器如何到达环境字典的信息以及您的代码调用的回调是您可能不需要的网络服务器魔法关心。只要您遵守协议,网络服务器就不需要关心您是如何获得构成您应用程序响应的输出列表的。

    Paste 文档对我帮助很大。您可能会发现它很有用。顺便说一句,Paste 是一堆有用的东西,可以帮助您利用 WSGI。这些文档非常有助于理解如何使用 WSGI 和扩展 Paste。

    我知道您要求提供图表,抱歉。 :(

    【讨论】:

    • 粘贴(WSGI)文档的链接非常有用。帮助我理解 WSGI。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多