如何从烧瓶URL路由中隐藏变量?

时间:2019-03-04 14:10:06

标签: 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
    return jsonify(count=count)

内部函数count全部返回不同的值。最后我得到一个类似

的结果
http://127.0.0.1:5000/done/43

但是对于通用API,我需要更通用的url视图

http://127.0.0.1:5000/done

问题是,如果我从端点上删除<count>,则会收到错误

TypeError: result() missing 1 required positional argument: 'count'

有没有办法覆盖它?

1 个答案:

答案 0 :(得分:0)

此任务通过会话变量解决

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)