如何更改页面并使用Flask调用某个Javascript函数?

时间:2014-01-22 06:58:37

标签: javascript python html web flask

我不确定我是否正确地提出了我的问题。我根本不确定如何解决这个问题。

我有一个网站load.html。在这里,我可以使用文本框输入ID,例如123,页面将显示一些信息(通过从Flask服务器调用AJAX的Javascript函数检索)。

我还有一个网站account.html。此处显示与帐户关联的所有ID。 我想这样做,如果您点击account.html中的ID,它会转到load.html并显示所需信息。

基本上,在我按下链接后,我需要将URL更改为load.html,然后调用Javascript函数以显示与ID相关的信息。

我最初的想法是在Flask中使用可变路线,例如@app.route('/load/<int:id>'),而不仅仅是@app.route('/load')

但所有/load都显示load.html,而不是实际加载信息。这是在我之前谈到的Javascript函数中完成的。

我不知道该怎么做。有什么想法吗?

如果我需要解释更多,请告诉我。谢谢!

为了更清楚,我可以转到load.html并从Web控制台调用Javascript函数,它可以正常工作。我只是不确定如何使用Flask中的可变路由(这是正确的方法吗?),因为显示信息取决于一些Javascript来解析Flask返回的数据。

Flask代码加载load.html

@app.route('/load')
def load():
    return render_template('load.html')

Flask代码返回信息

@app.route('/retrieve')
def retrieve():
    return jsonify({
        'in':in(),
        'sb':sb(),
        'td':td()
    })

/retrieve只返回数据库中的数据结构,然后由Javascript解析并输出到HTML中。现在我考虑一下,我想可变路线必须在检索?现在我正在使用AJAX发送ID,我应该将其更改为/retrieve/<int:id>吗?但是,我如何从例如/retrieve/5中检索信息呢?在AJAX中,我可以在成功方法下使用data,但不能用于简单的网址。

2 个答案:

答案 0 :(得分:0)

假设您将数据作为

从浏览器URL传递回检索
www.example.com/retrieve?Data=5

你可以得到像

这样的数据值
dataValue = request.args.get('Data')

答案 1 :(得分:0)

您可以在网址中指定param,例如/retrieve/<page>

它可以在烧瓶中使用几种方法。

一种方法是

@app.route('/retrieve/', defaults={'page': 0})
@app.route('/retrieve/<page>')
def retrieve():

    if page:
        #Do page stuff here

    return jsonify({
        'in':in(),
        'sb':sb(),
        'td':td()})

另一种方式是

@app.route('/retrieve/<page>')
def retrieve(page=0):

    if page:
        #Do your page stuff hear

    return jsonify({
        'in':in(),
        'sb':sb(),
        'td':td()
    })

Note:您也可以将转换器指定为<int:page>