从pushstate接收url的烧瓶

时间:2015-06-24 23:45:33

标签: javascript jquery python flask

我试图将window.history.pushState所做的更改放到我的烧瓶服务器上。例如,如果我这样做:

window.history.pushState("object or string", "Title", "?firstchange=done");

我如何完成"完成"烧瓶中的字符串?我在客户端路由下有一个模板,我想要一个在可用时获取firstchange查询字符串的函数。

@app.route("/client")
def initial_template():
    return render_template('client.html')

@app.route("/client")
def get_change():
    print request.args.get('firstchange')

我在网址更改为http://127.0.0.1:5000/client?firstchange=done后在其他功能中调用此内容时返回的是"无"而不是"完成"。

编辑:

如何使用

执行此操作
window.location.href('127.0.0.1:5000/client?firstchange=done')

使用相同的烧瓶方法,我仍然得到"无"的回报。我可以不在其他方法中使用get_change方法来确定查询字符串值吗?

1 个答案:

答案 0 :(得分:0)

我不知道你怎么能在相同的路线下注册两种方法,但我认为这不是一个好主意以及你的烧瓶服务器的行为方式。 所以,请改变你的一条路线。 这有两种方法:

1)

@app.route("/client")
def initial_template():
    return render_template('client.html')

@app.route("/client_state")
def get_change():
    print request.args.get('firstchange')

在这种情况下,您的javascript重定向代码将如下所示: window.location.href( '127.0.0.1:5000/client_state?firstchange=done')

2)

@app.route("/client")
def initial_template():
    return render_template('client.html')

@app.route("/client/<state>")
def get_change(state):
    print state

在这种情况下,您的javascript重定向代码将如下所示: window.location.href( '127.0.0.1:5000/client/done')

请查看this documentation以获取更多问题。