首页 > 解决方案 > 如何使用烧瓶从 javascript 中获取变量

问题描述

所以我按照flask的建议在适当的文件夹中设置了app.py、index.js、index.html。Index.html 在 app.py 运行时呈现,然后 index.html 运行 index.js,它从用户那里获取输入数据。我正在尝试发送此输入并将其发送到 python,在那里我可以调用 API、获取数据并使用它,但是我想不出一种方法来做到这一点。

我的 app.py:

import os
from flask import Flask, render_template, jsonify, request, redirect
app = Flask(__name__)

# This will run upon entrance
@app.route("/")
def home():
    return render_template("index.html")

@app.route("/stock_data")
def get_stock_data():
    # called from index.js Plot function

if __name__ == "__main__":
    app.run()

这是我的javascript代码:

console.log("everythin works fine.")
d3.select("#stocklabelsubmit").on("click", submitted)

function submitted(){
    d3.event.preventDefault();

    // grab label inputted.
    var inputted_label = d3.select("#stockInput").node().value;

    d3.select("#stockInput").node().value = "";

    Plot(inputted_label);
};


function Plot(input){
    var url = "full url"
    // when this function is called call /stock_data function!!
    // data is what is returned from python
    d3.json(url).then(function(data){

    })
}

一切正常,当我在提交函数的末尾控制台记录 inputted_label 时,它可以正常工作。现在我想将 inputted_label 变量发送到 /stock_data。提前致谢!

标签: javascriptpythonflask

解决方案


var url = "/stock_data"

这需要是一个有效的 URL,而不仅仅是 Flask 端点的路径。这意味着它必须以“http://”或“https://”开头并包含一个域。出于开发目的,"http://localhost/stock_data"将起作用。如果您曾经将它部署到服务器,您将需要创建一个配置文件,以便可以根据您运行的环境配置主机名。


推荐阅读