如何从flask url路由隐藏变量?
我正在制作API,并寻找一种从url隐藏额外信息的方法。我有一个函数索引:如何从flask url路由隐藏变量?,flask,Flask,我正在制作API,并寻找一种从url隐藏额外信息的方法。我有一个函数索引: @app.route('/', methods=['GET', 'POST']) def index(): count = foo() return redirect(url_for("result", count=count)) 和一个函数结果 @app.route("/done/<count>") def result(count): count = count retu
@app.route('/', methods=['GET', 'POST'])
def index():
count = foo()
return redirect(url_for("result", count=count))
和一个函数结果
@app.route("/done/<count>")
def result(count):
count = count
return jsonify(count=count)
但是我需要更通用的url视图,比如
http://127.0.0.1:5000/done
问题是,如果我从端点删除
,就会得到错误
TypeError: result() missing 1 required positional argument: 'count'
是否有方法覆盖此项?此任务通过会话变量解决
from flask import session
@app.route('/', methods=['GET', 'POST'])
def index():
count = foo()
session['count'] = count
return redirect(url_for("result"))
@app.route("/done/")
def result(count):
count = session['count']
return jsonify(count=count)
从函数定义中删除
count
变量def result
。是否需要保留count
变量值?如果从def result
中删除count
,我会得到错误。需要在json文件中返回计数值,我认为这是不可能的。基本上,您正在重定向到新的url,其中包含count
变量<代码>http://127.0.0.1:5000/done/count必须发出请求才能在请求之间保留该值。如果您仍然坚持,您可以在cookie/session中为每个用户存储该值。
from flask import session
@app.route('/', methods=['GET', 'POST'])
def index():
count = foo()
session['count'] = count
return redirect(url_for("result"))
@app.route("/done/")
def result(count):
count = session['count']
return jsonify(count=count)