我有两个应用程序,都是由Flask,app1app2启动的.在app2中,我需要重定向到app1中定义的URL并传递一个参数(我需要模板中的logged_in).

如果它在同一个应用程序中,我可以这样做,

from flask import Flask, render_template, redirect, url_for

app1 = Flask(__name__)


@app1.route('/')
def index():
   return render_template('index.html', logged_in=False)

@app1.get('/login')
def login():
   return redirect(url_for('index', logged_in=True))

然而,比方说,我不能在app2年内做到这一点.

from flask import Flask, redirect

app2 = Flask(__name__)

@app2.get('/login')
def login():
   return redirect('http://localhost:5000', logged_in=True) # this is not allowed.

有谁有主意吗?先谢谢你.

推荐答案

您可以在重定向时使用查询参数:

@app2.get('/login')
def login():
   return redirect('http://localhost:5000?logged_in=1')

在本地主机服务器上,您可以使用Java脚本根据查询参数更改页面:

const urlParams = new URLSearchParams(window.location.search);
const loggedIn = urlParams.get('logged_in') == '1';
alert(loggedIn);

或者,如果本地主机服务器也在运行Flask,则可以如下所示获取查询参数:

from flask import request

@app.route('/')
def root():
    logged_in = request.args.get('logged_in') == '1'
    return render_template('index.html', logged_in=logged_in)

Python-3.x相关问答推荐

Pandas groupby基于索引的连续列值相等

TypeError:&Quot;Value&Quot;参数必须是标量、Dict或Series,但您传递了&Quot;Index&Quot;

如何获得大Pandas 的常见时间间隔

我想判断df_entry_log[AM_PM],并根据测试填充列

AddMultplicationEquality() 用于多个变量

如何使用python将pdf文件的页面合并为单个垂直组合页面

在Python中基于组/ID将两个数据帧进行映射,找出较接近的值

Pandas教程:如何更新行内数值的位置

如何对具有多个列值的 pandas 数据框进行数据透视/数据透视表

如何将虚拟变量列转换为多列?

删除括号和大括号中不必要的空格

在python中循环处理时并行写入文件

内部如何使用 Python 语法?

使用 python 正则表达式匹配日期

Python3 的超级和理解-> TypeError?

从 IPython 重新加载 Python 扩展模块

将 numpy.float64 列表快速转换为 Python 中的浮点数

从 csv 中删除单行而不复制文件

如何避免使用我的 python 包构建 C 库?

如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签