栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-为所有Flask路线添加前缀

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-为所有Flask路线添加前缀

答案取决于你如何为该应用程序提供服务。

子安装在另一个

WSGI
容器中
假设你将在
WSGI
容器(
mod_wsgi,uwsgi,gunicorn
等)中运行此应用程序;你实际上需要将该应用程序作为该
WSGI
容器的子部分挂载在该前缀处(任何讲WSGI的东西都可以使用),并将
APPLICATION_ROOTconfig
值设置为你的前缀:

app.config["APPLICATION_ROOT"] = "/abc/123"@app.route("/")def index():    return "The URL for this page is {}".format(url_for("index"))# Will return "The URL for this page is /abc/123/"

设置

APPLICATION_ROOT
配置值只是将
Flask
的会话
cookie
限制为该URL前缀。
Flask
Werkzeug
出色的WSGI处理功能将自动为你处理其他所有事情。

正确重新安装你的应用程序的示例
如果不确定第一段的含义,请看一下其中装有Flask的示例应用程序:

from flask import Flask, url_forfrom werkzeug.serving import run_simplefrom werkzeug.wsgi import DispatcherMiddlewareapp = Flask(__name__)app.config['APPLICATION_ROOT'] = '/abc/123'@app.route('/')def index():    return 'The URL for this page is {}'.format(url_for('index'))def simple(env, resp):    resp(b'200 OK', [(b'Content-Type', b'text/plain')])    return [b'Hello WSGI World']app.wsgi_app = DispatcherMiddleware(simple, {'/abc/123': app.wsgi_app})if __name__ == '__main__':    app.run('localhost', 5000)

代理请求到应用程序
另一方面,如果你将在Flask应用程序的WSGI容器的根目录下运行它并代理对它的请求(例如,如果它是FastCGI的对象,或者如果

nginx
正在
proxy_pass-ing
子端点的请求)到独立服务器
uwsgi/ gevent
服务器,则可以:

正如

Miguel
在回答中指出的那样,使用蓝图。
或者使用
DispatcherMiddleware
从werkzeug(或
PrefixMiddleware
从SU27的答案)到副安装在你使用的独立WSGI服务器应用程序。(请参阅上面的示例,正​​确地重新安装你的应用以获取使用的代码)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号