问题标签 [wsgi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
5340 浏览

python - Python 中不同 Web 编程方法的优缺点

我想用 Python 做一些服务器端脚本。但我有点迷失了这样做的方法的数量。

它以自己动手的 CGI 方法开始,似乎以一些非常强大的框架结束,这些框架基本上可以自己完成所有工作。还有很多介于两者之间的东西,比如web.pyPyroxideDjango

  • 您从事框架或方法的优缺点是什么?
  • 有哪些取舍
  • 他们在哪些项目上做得很好,在哪些项目上做得不好?

编辑:我还没有太多的网络编程经验。

我想避免像解析参数的 URL 等基本和繁琐的事情。
另一方面,虽然用Ruby on Rails在 15 分钟内创建的博客视频给我留下了深刻的印象,但我意识到隐藏了数百个东西来自我——如果你需要立即写一部作品,这很酷,但对于真正理解魔法来说并不是那么好——这就是我现在所寻求的。webapp

0 投票
5 回答
2284 浏览

python - python wsgi应用程序的调试/监控中间件

我正在搜索一个 wsgi 中间件,我可以围绕一个 wsgi 应用程序进行扭曲,它可以让我监控传入和传出的 http 请求和标头字段。

类似于 Firefox 实时标头之类的东西,但用于服务器端。

0 投票
2 回答
4401 浏览

python - 将 apache2 摘要身份验证信息传递给由 mod_wsgi 运行的 wsgi 脚本

我有指令

我想知道 /some/script.wsgi

什么用户登录。

我怎么做?

0 投票
1 回答
676 浏览

python - WSGI 中间件建议

我听说周围有很多有趣且有用的 WSGI 中间件。但是,我不确定哪些(除了那些是塔的一部分)有用且稳定。你最喜欢的 WSGI 中间件是什么?

0 投票
5 回答
47178 浏览

python - Python Web 框架、WSGI 和 CGI​​ 如何组合在一起

我有一个Bluehost帐户,我可以在其中将 Python 脚本作为 CGI 运行。我想这是最简单的 CGI,因为要运行,我必须在 中定义以下内容.htaccess

现在,每当我使用 Python 进行 Web 编程时,我都会听到很多关于 WSGI 以及大多数框架如何使用它的信息。但是我只是不明白这一切是如何结合在一起的,尤其是当我的 Web 服务器被提供时(Apache 在主机的机器上运行)而不是我真正可以玩的东西(除了定义.htaccess命令)。

WSGI、CGI 和框架是如何连接的?如果我想在我的基本 CGI 配置上运行 Web 框架(例如web.pyCherryPy ),我需要知道、安装和做什么?如何安装 WSGI 支持?

0 投票
3 回答
16018 浏览

python - scgi和wsgi有什么区别?

这两者有什么区别?哪个更好/更快/可靠?

0 投票
4 回答
138783 浏览

python - 104, 'Connection reset by peer' 套接字错误,或关闭套接字何时导致 RST 而不是 FIN?

我们正在并行开发 Python Web 服务和客户端网站。当我们从客户端向服务发出 HTTP 请求时,一个调用会在 socket.py 中持续引发一个 socket.error,如下所示:

当我用wireshark收听时,“好”和“坏”的反应看起来非常相似:

  • 由于 OAuth 标头的大小,请求被分成两个数据包。该服务使用 ACK 响应两者
  • 服务发送响应,每个标头一个数据包(HTTP/1.0 200 OK,然后是 Date 标头等)。客户端用 ACK 响应每个。
  • (好请求)服务器发送一个FIN、ACK。客户端以 FIN、ACK 响应。服务器响应 ACK。
  • (错误请求)服务器发送 RST、ACK,客户端不发送 TCP 响应,客户端引发 socket.error。

Web 服务和客户端都在运行 glibc-2.6.1 的 Gentoo Linux x86-64 机器上运行。我们在同一个 virtual_env 中使用 Python 2.5.2。

客户端是一个 Django 1.0.2 应用程序,它调用 httplib2 0.4.0 来发出请求。我们使用 OAuth 签名算法对请求进行签名,OAuth 令牌始终设置为空字符串。

该服务正在运行 Werkzeug 0.3.1,它使用 Python 的 wsgiref.simple_server。我通过 wsgiref.validator 运行 WSGI 应用程序,没有任何问题。

看起来这应该很容易调试,但是当我在服务端跟踪一个好的请求时,它看起来就像是错误的请求,在 socket._socketobject.close() 函数中,将委​​托方法变成了虚拟方法。当 send 或 sendto(不记得是哪个)方法被关闭时,发送 FIN 或 RST,客户端开始处理。

“对等连接重置”似乎将责任归咎于服务,但我也不信任 httplib2。客户有错吗?

** 进一步调试 - 看起来像 Linux 上的服务器 **

我有一台 MacBook,所以我尝试在一台上运行该服务,在另一台上运行客户端网站。Linux 客户端调用 OS X 服务器时没有错误 (FIN ACK)。OS X 客户端调用带有错误的 Linux 服务(RST ACK 和 (54, 'Connection reset by peer'))。因此,它看起来像是在 Linux 上运行的服务。是 x86_64 吗?一个糟糕的 glibc?wsgiref? 还在找...

** 进一步测试 - wsgiref 看起来很不稳定 **

我们已经使用 Apache 和 mod_wsgi 投入生产,并且连接重置已经消失。请参阅下面的答案,但我的建议是记录连接重置并重试。这将使您的服务器在开发模式下运行良好,并在生产中稳定运行。

0 投票
5 回答
7155 浏览

django - 在 Dreamhost 上部署 Django

我正在尝试让投票教程在我的 Dreamhost 帐户中运行(我之前没有任何部署 Django 的经验)。我在我的主目录下载了我在这里找到的脚本(http://gabrielfalcao.com/2008/12/02/hosting-and-deploying-django-apps-on-dreamhost/)并执行了它。现在我在 ~/.myroot/ 中有 Python 2.5 和 Django,我的 Django 项目目录是 ~/projects/

这是 ~/projects/ 目录的内容(我自己复制了 polls/ 和 templates/polls/ 目录)。

现在我应该怎么做才能让投票应用程序正常工作?

更新

我终于得到了一个使用 Passanger WSGI 的“Hello World”Django 应用程序。它适用于服务器的默认 Python 2.3.5 和我安装的 Python 2.5.2。

Passanger WSGI - Dreamhost Wiki 上的Django

0 投票
9 回答
9242 浏览

python - 对于 Python 支持,从哪家公司获得托管服务最好?

我希望能够运行 WSGI 应用程序,但我当前的托管限制了它。有人知道可以满足我要求的公司吗?

0 投票
3 回答
1008 浏览

python - 使用python将utf-16编码的rss流存储到sqlite3的正确程序是什么

我有一个 python sgi 脚本,它尝试提取发布到它的 rss 项目并将 rss 存储在 sqlite3 db 中。我使用 Flup 作为 WSGIServer。
获取发布内容: postData = environ["wsgi.input"].read(int(environ["CONTENT_LENGTH"]))

要尝试存储在数据库中:

这导致只有 rss 的前几个字符存储在记录中:ÿþ< 我相信初始字符是 rss 的 BOM。

我已经尝试了我能想到的所有排列,包括首先将 rss 编码为 utf-8,然后尝试存储,但结果是相同的。我无法解码,因为某些字符无法表示为 unicode。

运行 python 2.5.2 sqlite 3.5.7

提前感谢您对此问题的任何见解。


这是 postData 中包含的初始数据示例,由 repr 函数修改,写入文件并使用 less 查看:

'\xef\xbb\xbf

谢谢大家的回复!很有帮助。


我提交的示例没有通过stackoverflow html过滤器将再次尝试,将小于和大于转换为实体(预览表明这有效)。

\xef\xbb\xbf<?xml version="1.0" encoding="utf-16"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema"><channel><item d3p1:size="0" xsi:type="tFileItem" xmlns:d3p1="http://htinc.com/opensearch- ex/1.0/">