在Flask中,有没有办法获取request.path,其中包含WSGI
或其他可能添加的“装饰”?
在测试模式下运行(仅在端口5000上),我的request.path
和url_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下,网址不匹配。
答案 0 :(得分:8)
这是功能,而不是错误。查看文档for the URL-related attributes on the request和for the request object itself。
您可能想要使用request.script_root + request.path
。