【问题标题】:Mod_python not getting GET variablesMod_python 没有得到 GET 变量
【发布时间】:2013-12-13 19:06:23
【问题描述】:

我有标准的 13.10 Ubuntu。运行 Apache 2 和 mod_python。两者都使用 apt-get 安装。我正在尝试将 GET 变量从客户端传递到服务器,执行 python 脚本,然后返回结果。

这是我的 ApacheConfig(下面是默认加代码):

ScriptAlias /tm/ "/home/tm/"

<Directory /home/tm/ >
        Require all granted
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        AddHandler mod_python .py
        PythonHandler mod_python.publisher
        PythonDebug On
</Directory>

Python 代码:test.py

import csv

def index():
    form = cgi.FieldStorage()
    return form

我试过http://myWebsite.com/tm/test.py?testVariable=This

返回:FieldStorage(None, None, []) - 表示 GET 变量没有被传递。

【问题讨论】:

  • 为什么要使用 mod_python 开发新代码?
  • @伊格纳西奥。抱歉不明白你的意思。
  • mod_python 已经死了 3.5 年。为什么任何人都在编写使用它的代码?

标签: python apache mod-python


【解决方案1】:

正如其他人在评论中所说,您应该尝试使用 mod_python 以外的任何东西。 Flask 是一个优秀的 python 微框架http://flask.pocoo.org/

假设您由于某种原因被锁定到 mod_python: 您需要读取输入变量,而是创建一个新的空白实例并返回它。

def index():
  form = cgi.FieldStorage() #this is creating a new/blank instance
  return form

你想读取“req”变量中的全局副本:

def index():
    return req.form

同样,如果您有选择,请尽一切可能避免使用 mod_python。它在当时很好,但不应该是你使用 python web 框架的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-06
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    相关资源
    最近更新 更多