我有两个应用程序,都是由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相关问答推荐

在Python中从列创建新行

向前/向后移动导致移动行的数据不可见

我可以设置树视图层次 struct 按钮吗?

tkinter/python3.9 中的 Entry 子类和用户输入重复的问题

Python中提取每个组/ID所属特定列中的自然数

位对的距离

在判断列表变量时如何判断特定列的值并分配加权整数值

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

是否将dict转换为一个数据帧,每个值都有重复的键?

例外:使用 Pyinstaller 时找不到 PyQt5 插件目录,尽管 PyQt5 甚至没有被使用

获取嵌套字典的所有键

为什么Pandas会在 NaN 上合并?

if 语句中冒号的语法错误

我们如何获得 __repr__() 的默认行为?

AttributeError:系列对象没有属性iterrows

ImportError:无法在 PyQt5 中导入名称QStringList

Pruning in Keras

在 Keras 中训练神经网络的零精度

如何使用 Celery 和 Django 将任务路由到不同的队列

如何提高数据输入管道性能?