如何从flask 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

我正在制作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
    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)