如何实现flask重定向装饰器

如何实现flask重定向装饰器,flask,python-decorators,flask-restful,flask-login,Flask,Python Decorators,Flask Restful,Flask Login,我有一个flask应用程序实例在端口80上运行,另一个相同应用程序的实例在端口8080上运行。我希望所有用户对所有url使用端口80,除了一个名为/parallel_url的url。所以当他们来的时候https://server:80/parallel_url 它重定向到https://server:8080/parallel_url. 我也不希望用户能够访问端口8080上除/parallel_url之外的任何其他url,我希望他们被重定向到post 80 因此,如果他们访问https://se

我有一个flask应用程序实例在端口80上运行,另一个相同应用程序的实例在端口8080上运行。我希望所有用户对所有url使用端口80,除了一个名为/parallel_url的url。所以当他们来的时候https://server:80/parallel_url 它重定向到https://server:8080/parallel_url. 我也不希望用户能够访问端口8080上除/parallel_url之外的任何其他url,我希望他们被重定向到post 80 因此,如果他们访问https://server:8080/*它需要重定向到https://server:80/*

我计划写一个decorator,查看当前url是否不是/parallel_url,并将其重定向到80。因此,如果用户在端口8080中访问此端口,则需要将其重定向到端口8080

def并行_重定向功能: @functools.wrapsfunc def包装器: 如何在此处重定向到80 如果request.url\u rule==/parallel\u url: 值=func 返回值 返回包装器 @mod.route'/parallel\u url' @并行重定向 @需要登录 def parallel_url: template=tpl_env.get_模板'my_index.html' x=来自数据库的一些数据 y=来自db的一些其他数据 返回模板。renderx=x,y=y 更新: 我发现了一个变量,它告诉我在哪个端口上。请参考下面的代码

def并行_重定向功能: @functools.wrapsfunc def包装器: 如果os.environ.curr_port==8080: if request.url_规则!=/并行地址: 要重定向到的代码https://server:80/+request.url\u规则 elif os.environ.curr_port==80: 如果request.url\u rule==/parallel\u url: 要重定向到的代码https://server:8080/+request.url\u规则 其他: 值=func 返回值 返回包装器 @mod.route'/parallel\u url' @并行重定向 @需要登录 def parallel_url: template=tpl_env.get_模板'my_index.html' x=来自数据库的一些数据 y=来自db的一些其他数据 返回模板。renderx=x,y=y
我将捕获所有可能的组合,并使用重定向函数调用另一台服务器。您只需要请求中的当前端口,如所述

从烧瓶导入重定向 def并行_重定向功能: @functools.wrapsfunc: request\u port=request.environ.get'REMOTE\u port' 如果request.url\u rule==/parallel\u url: 如果请求_端口==80: /并行url,但在端口80上,重定向 返回重拨recthttps://...:8080/parallel_url,代码=302 其他: 返回函数 elif请求_端口==8080: 不是/parallel_url,而是在端口8080上,也重定向 返回重拨recthttps://...:80 +request.url\u规则,代码=302 最后,不是/parallel_url,在端口80上,所以我们都很好 返回函数
为什么这个问题被否决了,否决应该有评论和反馈。这将有助于OP更好地提出问题