标签: wsgi

安装了Python 2.6.2的Ubuntu 9.04上的mod_wsgi 2.5

有没有人在Ubuntu 9.04上使用默认的Python安装(2.6.2)成功使用mod_wsgi 2.5?

我有编译错误:

mod_wsgi.c:119:2: error: #error Sorry, mod_wsgi requires at least Python 2.3.0.
mod_wsgi.c:123:2: error: #error Sorry, mod_wsgi requires that Python supporting thread.
Run Code Online (Sandbox Code Playgroud)

哪个Python给/ usr/bin/python和/ usr/bin/python -V返回Python 2.6.2所以我不确定第一个有什么问题,老实说我不知道​​怎么检查编译中使用的选项Ubuntu上的默认Python.

还有很多其他错误,但这些错误看起来最相关.

还有什么可能是错的?

python compiler-construction ubuntu mod-wsgi wsgi

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

如何使WSGI(Python)有状态?

我是Python世界的新手.我来自java和ABAP世界,他们的应用服务器能够处理有状态请求.

在使用WSGI的python中也可以吗?

或者在其他层处理有状态和无状态?

python wsgi

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

非常奇怪的python NameError

我正在制作一个python程序来腌制一些数据,然后将其保存到文件中。它不起作用。

path="C:/foo/bar"
def newData():
    import pickle
    data = [
        ["foo"],
        ["bar"],
        ["baz"]
    ]
    file = None
    i = 0

    while file==None:
        if not exists(path + str(i)+".data"):
            file = open(path + str(i)+".data", "w+")
        else:
            i+=1
    pickle.dump(data, file)
    close(file)
    return path + str(i)+".data"
Run Code Online (Sandbox Code Playgroud)

我收到一个名称错误,指出“未定义全局名称关闭”:

  File "C:/foo/bar/baz.py", line 26, in newData
    close(file)
NameError: global name 'close' is not defined
Run Code Online (Sandbox Code Playgroud)

如果我对其中带有close的行进行注释,则会得到:

  File "C:/foo/bar/baz.py", line 26, in newData
    #close(file)
NameError: global name 'close' is not defined
Run Code Online (Sandbox Code Playgroud)

我的代码是否错误(是)?怎么样?

python wsgi pickle nameerror python-2.7

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

在Twisted上使用WSGI

我可以一起使用Twisted和mod_wsgi来尝试性能提升吗?

由于我没有启动reactor.listenTCP(...),我如何使用扭曲的异步方法?:

我尝试过的:

> server.wsgi

def application(environ, start_response):
    status = '200 OK'
    output = 'Pong!'
    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    # How do I call a twisted async method from here?!
    # like deferToThread(object.send, environ).
    return [output]

resource = WSGIResource(reactor, reactor.getThreadPool(), application)
Run Code Online (Sandbox Code Playgroud)

python mod-wsgi wsgi twisted twisted.web

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

解码self.request.body

在我的帖子处理程序中,消息的主体是一个json.在self.request.body中,我收到一条HTML编码的消息:

%7B+%22name%22%3A+%22John+Dao%22%2C+%22Age%22%3A+42+%7D=
Run Code Online (Sandbox Code Playgroud)

看一下网络流量,有效载荷实际上是:

{ "name": "John Dao", "Age": 42 }
Run Code Online (Sandbox Code Playgroud)

所以,我很确定编码发生在服务器上.我如何解码这个字符串,或以某种方式告诉json.loads接受编码的消息,或者更好 - 告诉WSGI(它是谷歌应用引擎)不编码身体与beging?

python google-app-engine wsgi

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

python简单的wsgi文件上传脚本 - 有什么问题?

import os, cgi

#self_hosting script
tags = """<form enctype="multipart/form-data" action="save_file.py" method="post">
<p>File: <input type="file" name="file"></p>
<p><input type="submit" value="Upload"></p>
</form>"""

def Request(environ, start_response):
    # use cgi module to read data
    form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ, keep_blank_values=True)

    try:
        fileitem = form['file']
    except KeyError:
        fileitem = None

    if fileitem and fileitem.file:
        fn = os.path.basename(fileitem.filename)
        with open(fn, 'wb') as f:
            data = fileitem.file.read(1024)
            while data:
                f.write(data)
                data = fileitem.file.read(1024)

            message = 'The file "' + fn + '" was uploaded successfully'

    else :
        message = …
Run Code Online (Sandbox Code Playgroud)

python post cgi wsgi

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

Django视图测试中使用StringIO的“关闭文件的I/O操作”

我继承了以下 Django 视图代码,由另一个 Web 服务用于提供可下载版本的输出数据:

def index(request):
    # ... (snip) ...
    data = base64.decodestring(request.POST['data'])
    filename = request.POST['filename']

    wrapper = FileWrapper(StringIO(data))

    response = HttpResponse(wrapper, content_type=guess_type(str(filename))[0])

    response['Content-Length'] = len(data)
    response['Content-Disposition'] = "attachment; filename=" + filename

    return response
Run Code Online (Sandbox Code Playgroud)

该函数本身(针对 Django 1.0 编写)在升级到 1.5 后仍然可以正常工作。不幸的是,涵盖此视图的测试现在失败了:

    def testDownload(self):
        self.client.login(username='test', password='test')

        real = 'abc' * 100
        data = base64.encodestring(real)
        response = self.client.post("/api/v1/download/", {'data': data, 'filename': 'out.jpg'})

        self.assertEqual(real, response.content)
        self.assertEqual(response['Content-Disposition'], 'attachment; filename=out.jpg')
Run Code Online (Sandbox Code Playgroud)

和错误:

Traceback (most recent call last):
  File "/home/fred/.secret_projects/final/gerbils/tests/amf.py", line 548, in testDownload
    self.assertEqual(real, response.content)
  File …
Run Code Online (Sandbox Code Playgroud)

python django wsgi stringio

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

如何使用Python 3处理从Web表单上传的csv文件?

我正在尝试编写一些Python 3代码来处理通过Web表单(使用wsgi)上传的csv文件。我设法将文件上传了,但是我在努力使用Python的csv工具来处理它。这似乎与字节vs字符串有关。

这是我尝试过的:

import cgi, csv
form = cgi.FieldStorage(fp=environ['wsgi.input'],environ=environ)
upload = form['upload']
file = upload.file
data = csv.DictReader(file)
for line in data:
    #Do stuff here to process csv file
Run Code Online (Sandbox Code Playgroud)

它到达“用于数据行”的位置,然后出现以下错误消息:

_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
Run Code Online (Sandbox Code Playgroud)

所以问题是我的文件是二进制文件,但是csv需要一个字符串文件,对吗?知道我该如何解决吗?

我想到的一种可能的解决方法是,仅读取文件的行而不使用csv模块并手动处理数据,这虽然可行,但似乎有点麻烦。如果可能的话,最好使用Python的csv模块的功能。

从中上传文件的Web表单具有属性

enctype="multipart/form-data"
Run Code Online (Sandbox Code Playgroud)

上传文件需要我收集的内容。

csv wsgi python-3.x

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

如何在mod_python中访问查询参数(“ $ _GET”)?

我想知道如何$_GET在python脚本上显示请求()?

请注意,我mod_python用作UBUNTU服务器上运行apache2的基本Web服务器。

如果您有任何想法,将非常感谢您的帮助:)

其他Python网络服务器(例如Django等)...在我的情况下需要注意,因为我仅针对一个特定任务运行一个python脚本:)

python wsgi mod-python query-parameters

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

将 Django 部署为独立的内部应用程序?

我正在使用 Django 开发一个工具,供我的组织内部使用。它用于搜索和标记文档(使用 Haystack 和 Solr),并将用于不同的项目。我的团队目前有一个工作原型,我们希望“在野外”部署它。

我们的安全环境很严格。项目文档位于网络驱动器上的子文件夹中,并且根据用户的 Windows 凭据限制对这些文件夹的访问(我们还有一个使用相同凭据的 MS SQL 服务器)。一个用户只能访问自己参与的项目。由于我们是微软的专卖店,如果我们想在公司内网部署我们的应用程序,我们需要使用一个IIS服务器来处理这些权限。团队中没有人具备使用 IIS、Active Directory 所需的知识,而且我们的 IT 部门已经人满为患。简而言之,我们不是网络开发人员,我们无法立即接触到任何有经验的人。

我的 hacky 解决方案是完全放弃 IIS,让每个最终用户在本地运行一个轻量级服务器(即 CherryPy),同时每个用户都保留对公共项目特定数据库的访问权限(例如,位于网络驱动器上的 SQLite DB 或 MS 上的 DB SQL 服务器)。为了使用该工具,他们只需启动一个多合一的批处理脚本并将浏览器指向127.0.0.1:8000. 我知道这有多丑陋,但我觉得它利用了已经到位的安全措施(请注意,在给定的项目中永远不要期望超过 10 个同时用户)。这是一个糟糕的主意吗,如果是这样,什么是更好的解决方案?

iis django wsgi cherrypy django-haystack

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