标签: wsgi

我可以同时为Windows和Linux平台编写Python Web应用程序吗?

我可以编写可以在Windows(IIS Web服务器)和Linux(Apache或lighttpd)上托管的Web应用程序而无需进行任何更改吗?

CGI?也许是新事物?WSGI | FastCGI?

python cgi wsgi fastcgi

3
推荐指数
1
解决办法
1510
查看次数

使用WSGI创建动态图像,不涉及任何文件

我想将动态创建的图像发送给我的用户,例如图表,图形等.这些图像是"丢弃"图像,它们只会被发送给一个用户然后被销毁,因此"没有涉及文件".

我想将图像直接发送给用户,而不是先将其保存在文件系统中.使用PHP,可以通过将HTML文件中的图像链接到PHP脚本来实现,例如:

编辑:SO吞下我的图片标签:

<img src="someScript.php?param1=xyz">
Run Code Online (Sandbox Code Playgroud)

然后,脚本将正确的标头(filetype => jpeg等)发送到浏览器,并直接将图像写回客户端,而不会将其临时保存到文件系统.

我怎么能用WSGI应用程序做这样的事情.目前我正在使用Python的内部SimpleWSGI服务器.我知道这个服务器主要用于演示目的而不是实际使用,因为它缺乏多线程功能,所以请不要指出这一点,我知道这一点,现在它满足了我的要求: )

是否真的像将URL放入图像标签并使用WSGI处理请求一样简单,还是有更好的做法?

有没有人有这方面的经验,可以给我一些指示(请不要32位)

谢谢,

汤姆

python wsgi image-processing

3
推荐指数
1
解决办法
3504
查看次数

如何从原始HTTP请求字节流构造webob.Request或WSGI'environ'字典?

假设我有一个包含以下内容的字节流:

POST /mum/ble?q=huh
Content-Length: 18
Content-Type: application/json; charset="utf-8"
Host: localhost:80

["do", "re", "mi"]

有没有办法从中产生WSGI风格的"环境"字典?

希望,我忽略了一个简单的答案,并且它与相反的操作一样容易实现.考虑:

>>> import json
>>> from webob import Request
>>> r = Request.blank('/mum/ble?q=huh')
>>> r.method = 'POST'
>>> r.content_type = 'application/json'
>>> r.charset = 'utf-8'
>>> r.body = json.dumps(['do', 're', 'mi'])
>>> print str(r) # Request's __str__ method gives raw HTTP bytes back!
Run Code Online (Sandbox Code Playgroud)
POST /mum/ble?q=huh
Content-Length: 18
Content-Type: application/json; charset="utf-8"
Host: localhost:80

["do", "re", "mi"]

python wsgi webob

3
推荐指数
1
解决办法
1707
查看次数

使用AJAX在Web上调用python函数?

我想将一个字符串发送到我编写的python函数,并希望在网页上显示该函数的返回值.经过一些初步研究,WSGI听起来像是要走的路.最好,我不想使用任何花哨的框架.我很确定有人曾经这样做过.需要一些保证.谢谢!

python ajax wsgi

3
推荐指数
1
解决办法
1219
查看次数

将文件返回给WSGI GET请求

我是python上的WSGI的新手; 但有一个安装了isapi_wsgi的Windows服务器.我还有一个脚本可以处理我的GET请求,并且运行良好.问题是,有人向我发送了请求,我需要将zip文件返回给请求者.以下代码在我的GET处理程序中,它可以工作,但似乎不是返回zipfile的正确方法:

  # open zip file return it
  fin = open(zOutFilename, "rb")
  start_response( "200 OK", [('Content-Type', 'application/zip')])
  return fin.read()
Run Code Online (Sandbox Code Playgroud)

问题是,你正在返回一个'流' - 这意味着你丢失了文件名(浏览器只是将它命名为GET查询的名称),它看起来非常慢.

有没有更好的方法返回一个文件下载使用wsgi然后这个方法?

提前致谢

python forms wsgi get download

3
推荐指数
1
解决办法
4991
查看次数

设置Apache和Python WSGI以使用VirtualEnv

我无法让Apache/WSGI使用我的VirtualEnv.我在我的WSGI文件中添加了以下两行(服务器上的路径指向目标virtualenv中site-packages的实际位置):

import site
site.addsitedir('/sites/mysite/virtpy/lib/python2.6/site-packages')
Run Code Online (Sandbox Code Playgroud)

(来自http://www.foxhop.net/django-virtualenv-apache-mod_wsgi).但是,当我尝试在浏览器中加载url时,我得到500.检查apache日志:

 [Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142]     app =   import_module(appname)
[Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142]   File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py", line 35, in import_module
[Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142]     __import__(name)
[Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142] TemplateSyntaxError: Caught ImportError while rendering: No module named tagging
[Sun Jul 17 11:07:11 2011] [debug] mod_deflate.c(615): [client 94.170.105.142] Zlib: Compressed 629 to 387 : URL /
Run Code Online (Sandbox Code Playgroud)

所以我猜VirtualEnv没有被加载.任何人都知道如何告诉Apache/WSGI使用正确的virtualenv?

UPDATE

我按照Ken的建议更新了django.wsgi,但现在我在apache日志中收到以下错误

[Sun Jul …
Run Code Online (Sandbox Code Playgroud)

apache django wsgi virtualenv

3
推荐指数
1
解决办法
5819
查看次数

需要一个好的初学者的WSGI指南

我有一个几乎完整的简单的Web应用程序,作为Python CGI脚本编写.我想把它改成使用WSGI,但我找不到文档来帮助我理解WSGI实际上是什么(一个只能重复发现带有start_response等的调用但是似乎没有太多解释这些实际上是打电话).有人能指出我一个很好的解释,加上使用WSGI的方法吗?

编辑:应该添加我已经看到这个问题,但答案仍然似乎没有告诉一个如何在直接脚本中使用WSGI(而不是在框架中).

python wsgi

3
推荐指数
1
解决办法
761
查看次数

简单的网络UDP在烧瓶或金字塔中收听

我需要创建一个Web应用程序,显示通过定期传入的UDP数据包提供的数据.该网站可能位于Flask(可能是金字塔),部署在Nginx下.我怎样才能创建一个非常简单的后台任务(基本上只是socket.recv())来监听任何传入的数据包,并将数据推送到全局可访问的列表中?

我可以简单地从main()生成一个线程来执行此操作,还是需要使用像Celery或PyRes这样的东西?

谢谢你的指导.

python wsgi nginx flask

3
推荐指数
1
解决办法
3633
查看次数

在heroku python教程中,virtualenv发布安装wsgiref(ez_setup语法错误?)

我正在阅读Heroku教程"Python入门".我正处于我想用virtualenv在本地构建我的环境的步骤,所以我可以在本地运行测试应用程序.requirements.txt包括

wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud)

到达那一步virutalenv输出以下错误信息

Downloading/unpacking wsgiref==0.1.2 (from -r requirements.txt (line 8))
  Downloading wsgiref-0.1.2.zip
  Running setup.py egg_info for package wsgiref
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/private/var/folders/v6/zf84tlbn19zcqlbx977nlrmh0000gn/T/pip_build_jeremy/wsgiref/setup.py", line 5, in <module>
        import ez_setup
      File "./ez_setup/__init__.py", line 170
        print "Setuptools version",version,"or greater has been installed."
                                 ^
    SyntaxError: invalid syntax
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/private/var/folders/v6/zf84tlbn19zcqlbx977nlrmh0000gn/T/pip_build_jeremy/wsgiref/setup.py", line 5, in <module>

    import ez_setup

  File "./ez_setup/__init__.py", …
Run Code Online (Sandbox Code Playgroud)

python wsgi heroku virtualenv

3
推荐指数
1
解决办法
2822
查看次数

如何在centos7,Apache/2.4.6下使用Python3.5.2编译mod_wsgi 4.5.3

我试过./configure为mod_wsgi 4.5.3,如下所示:

./configure --with-python =/opt/Python352/bin

使用python3.5.2安装/ opt/Python352文件夹的位置.

但是在CentOS 7中,"configure"总是使用二进制"python"(对应于python2.75)而不是二进制"python3"或"python3.5"来构建mod_wsgi.

要求是获取.so文件,最新的mod_wsgi 4.5.3,使用python3.5.2编译并在CentOS 7下的Apache/2.4.6中加载.

谢谢.

python mod-wsgi wsgi python-3.5

3
推荐指数
1
解决办法
2589
查看次数