【问题标题】:Relative paths in FlaskFlask 中的相对路径
【发布时间】:2014-01-23 08:40:48
【问题描述】:

鉴于以下配置: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 配置。

【问题讨论】:

  • 您到底想完成什么?如果您想拥有网站的“测试”版本,我建议您使用子域,例如 test.myapp.com。
  • @rednaw,好点子,我已经用我想要完成的任务扩展了这个问题(见最后一句话)。

标签: python nginx flask uwsgi


【解决方案1】:

你可能在想@app.route('/')。路由 URL 看起来是绝对的,但它实际上是相对于您的应用程序的根 URL。

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

【讨论】:

  • 今天下午我要检查一下 - 如果是这样,你会准备好盐和胡椒粉,因为我要吃掉我的鞋子......交叉手指......
猜你喜欢
  • 1970-01-01
  • 2011-06-15
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多