Flask中的相对路径

时间:2014-01-23 08:40:49

标签: python nginx flask uwsgi

鉴于以下配置:Nginx,Uwsgi和Flask。

如果我将Flask应用程序从/ test /移动到生产,我必须更新Nginx配置,最好只更新该配置。因此,如果Flask @ app.route('/ test /')是相对的,那么在非现有语法中就是一个解决方案:@ app.route('[root]')。我无法找到实现这一目标的方法。话虽如此,我认为有一种方法,因为如果我必须改变Flask中的所有路径似乎是不切实际的。

Nginx的:

location /test/ {
    uwsgi_pass      127.0.0.01:3031;
    include         uwsgi_params;
}

Uwsgi:

uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --proces$

烧瓶中:

from flask import Flask
app = Flask(__name__)
@app.route('/test/')
def index():
    return "<span style='color:red'>I am app 1</span>"

我正在努力将我的应用程序移动到域的任何子路径(site.com/apps,site.com/congres/等等),并且只更新NGINX配置。

1 个答案:

答案 0 :(得分:2)

你可能在考虑@app.route('/')。路径URL似乎是绝对的,但它实际上是相对于应用程序的根URL。

这实际上涵盖在Flask's documentation中。您只需在nginx配置中指定将应用程序绑定到的URL; Flask应该能够从WSGI环境中检测到这个位置并相应地构建它的路径。