修复Flask apache应用程序中的绝对URL [英] Fix absolute urls in Flask apache application

查看:142
本文介绍了修复Flask apache应用程序中的绝对URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 < VirtualHost *:

80 GT;
WSGIScriptAlias / app /var/www/flask-app/flask-app.py
< Directory / var / www / flask-app>
要求所有授予
< / Directory>
< / VirtualHost>

但现在,链接如:

 < a href ='/ login'>登入< / a> 

转到 / login 而不是 /应用/登录。有没有办法解决这个问题,而不改变所有的网址? 解决方案

stackoverflow.com/users/6079732/pj-santoro\">桑托罗说你应该使用 url_for

 < a href ='{{url_for('route_function_name')}}'> ;登录< / a> 

其中:

  @ routes.route('/ login',methods = ['GET'])
def route_function_name():
return'blah'


I wrote a web application in Flask, then I decided to use Apache to deploy it:

<VirtualHost *:80>
    WSGIScriptAlias /app /var/www/flask-app/flask-app.py
    <Directory /var/www/flask-app>
        Require all granted
    </Directory>
</VirtualHost>

But now, links such as:

<a href='/login'>Sign in</a>

Go to /login instead of /app/login. Is there any way to fix this, without changing all of the URLs?

解决方案

As PJ Santoro said you should be using url_for. This takes the ambiguity out of routes.

<a href='{{ url_for('route_function_name') }}'>Sign in</a>

Where:

@routes.route('/login', methods=['GET'])
def route_function_name():
    return 'blah'

这篇关于修复Flask apache应用程序中的绝对URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆