gpt4 book ai didi

python - 如何使用 url 中未显示的参数进行重定向?

转载 作者:太空宇宙 更新时间:2023-11-03 16:21:51 29 4
gpt4 key购买 nike

我有一个 Flask 应用程序,并且像这样查看:

@app.route("/", methods=('POST', 'GET'))
def index():
...
return redirect(url_for(
'checkout',
data=json.dumps(data['data']),
source=source), code=307
)

@app.route("/checkout", methods=('POST', 'GET'))
def checkout():
data = json.loads(request.args['data'])
...

一切正常,除了重定向后我有像

这样的网址
/checkout?source=&data={ ... }

但我希望它清楚,网址中没有参数。我怎样才能到达它?

我尝试更改/删除重定向中的代码参数,但都不起作用。

最佳答案

您获得这些参数是因为您明确告诉flask生成它们:

url_for("checkout", data=..., source=...) 创建结帐 View 的 URL,其中包含参数“data”和“source”。如果您不想要它们,请将它们排除在外。

但我发现您需要传递一些数据。在您的情况下,使用 session 来完成该任务是有意义的:

from flask import session

# in the index view
session["data"] = your_data
session["source"] = your_source
return redirect(url_for("checkout"))

# in the checkout view
data = session.pop("data", None)
source = session.pop("source", None)
if data is not None and source is not None:
# do your stuff
else:
# checkout view was accessed before the index view
# probably an error -> abort(400) ?

有两点需要注意:

  1. 您不需要对 session 进行任何 json 编码,它可以保存任何 Python 对象
  2. 如果您想使用 session ,则需要在 Flask 配置中提供 SECRET_KEY

有关 session 以及如何提供 key 的更多信息,请查看 here

关于python - 如何使用 url 中未显示的参数进行重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38380336/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com