request.path和url_for在mod_wsgi下的Flask中不匹配

时间:2013-02-26 15:57:28

标签: python flask mod-wsgi

在Flask中,有没有办法获取request.path,其中包含WSGI或其他可能添加的“装饰”?

在测试模式下运行(仅在端口5000上),我的request.pathurl_for('settings')匹配得很好,但在WSGI下,正如预期的那样,url_for('settings')变为/manage/settings/,但request.path生成/settings/

我在httpd.conf中有以下内容,正在努力将application从开发转移到实际网站。

WSGIScriptAlias /manage /sw/servermanager/servermanager.wsgi
WSGIDaemonProcess servermgr user=user group=grp threads=4
<Directory /sw/servermanager>
    WSGIProcessGroup servermgr
    WSGIApplicationGroup %{GLOBAL}
    WSGIScriptReloading On
    Order deny,allow
    Allow from all
</Directory>

我喜欢让模板非常通用的想法,然后使用CSS动态显示导航信息。我已经使用this answer中提供的技术来构建我的观点,但是当我将mod_wsgi添加到等式中时会出现问题。

我看了一下请求对象,除了可能使用url_rule之外没有看到我想要的其他内容,但随后参数回避了我。

只是为了衡量,我正在使用的WSGI脚本链接:https://github.com/FernFerret/servermanager/blob/master/servermanager.wsgi

我也对request对象的文档感兴趣,我通过使用内置调试器和help(request)找到了解决方法。

编辑:我应该说,在运行mod_wsgi的Apache下,网址不匹配。

1 个答案:

答案 0 :(得分:8)

这是功能,而不是错误。查看文档for the URL-related attributes on the requestfor the request object itself

您可能想要使用request.script_root + request.path