Flask / Python上的URL映射

时间:2017-07-25 07:32:31

标签: python flask mod-wsgi

我在应用程序中为我的终端填充URL路由时遇到了一个问题,无法记录。

在Apache wsgi别名下使用应用程序时会出现问题,例如

  

本地主机/ mywebapp /

我的开发apache webapp.cong文件,

<virtualhost *:80>
    ServerName mywebsite.com

    WSGIDaemonProcess webapp user=www-data group=www-data threads=5 home=/home/user/projects/webapp/
    WSGIScriptAlias /mywebapp /home/user/projects/webapp/app.wsgi

    <directory /home/user/projects/webapp/>
        WSGIProcessGroup pgadmin
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptReloading On
        Require all granted
    </directory>
</virtualhost>

当我尝试使用以下代码获取网址列表时,

for rule in current_app.url_map.iter_rules('static'):
    print("Endpoint: ", rule.endpoint, "URL: ", rule.rule)

输出(其中一个端点&amp; url):

Endpoint: 'static' URL: '/static/<path:filename>'

我期待带有WSGI别名的网址,但我没有使用WSGI别名获取网址。

预期输出:

Endpoint: 'static' URL: '/mywebapp/static/<path:filename>'

另一件有趣的事情是,当我尝试使用url_for()函数获取网址时,我正在获取正确的网址

print(url_for('static', filename='js/require.js'))

输出

/mywebapp/static/js/require.js

如何使用 current_app.url_map.iter_rules()功能获取WSGI前置URL。

0 个答案:

没有答案