jQuery .getJSON 不是 运行 flask 应用程序
jQuery .getJSON not running with flask app
我有一个烧瓶应用程序,我正在尝试将一些 json 发送到浏览器并呈现它。但是带有 $.getJSON()
的行不是 运行。具体内容如下:
app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index_html():
data = {"this":"is", "just":"a test"}
return render_template('index.html', data=data)
if __name__ == '__main__':
app.run(debug=True)
index.html
<html>
<head>
<script src="{{url_for('static', filename='jquery-3.5.1.min.js')}}"></script>
<script src="{{url_for('static', filename='leaflet/leaflet.js')}}"></script>
<link rel="stylesheet" href="{{url_for('static', filename='leaflet/leaflet.css')}}">
<link rel="stylesheet" href="{{url_for('static', filename='app.css')}}">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
</head>
<body>
<h1>My test that doesn't work</h1>
<div id="llmap"></div>
<script src="{{url_for('static', filename='app.js')}}"></script>
</body>
app.js
console.log("before")
$.getJSON("/", function(data){
console.log("during")
console.log(JSON.stringify(data));
});
console.log('after')
控制台输出
before
after
即使我的数据不知何故搞砸了,我也希望至少能看到
before
during
after
我有什么不明白的地方,为什么 getJSON()
没有开火?
您正在使用
return render_template('index.html', data=data)
调用 .getJSON
函数时,您只需要 return 数据。简单
return data
应该可以。因为 getJSON 不允许 POST 请求,所以你必须再添加一个路由
@app.route('/')
def index_html():
return render_template('index.html')
@app.route("/getjson")
def json():
data = {"this":"is", "just":"a test"}
return data
并将您的 getJSON
请求更改为
$.getJSON("/getjson", function(data){
console.log("during")
console.log(JSON.stringify(data));
});
我有一个烧瓶应用程序,我正在尝试将一些 json 发送到浏览器并呈现它。但是带有 $.getJSON()
的行不是 运行。具体内容如下:
app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index_html():
data = {"this":"is", "just":"a test"}
return render_template('index.html', data=data)
if __name__ == '__main__':
app.run(debug=True)
index.html
<html>
<head>
<script src="{{url_for('static', filename='jquery-3.5.1.min.js')}}"></script>
<script src="{{url_for('static', filename='leaflet/leaflet.js')}}"></script>
<link rel="stylesheet" href="{{url_for('static', filename='leaflet/leaflet.css')}}">
<link rel="stylesheet" href="{{url_for('static', filename='app.css')}}">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
</head>
<body>
<h1>My test that doesn't work</h1>
<div id="llmap"></div>
<script src="{{url_for('static', filename='app.js')}}"></script>
</body>
app.js
console.log("before")
$.getJSON("/", function(data){
console.log("during")
console.log(JSON.stringify(data));
});
console.log('after')
控制台输出
before
after
即使我的数据不知何故搞砸了,我也希望至少能看到
before
during
after
我有什么不明白的地方,为什么 getJSON()
没有开火?
您正在使用
return render_template('index.html', data=data)
调用 .getJSON
函数时,您只需要 return 数据。简单
return data
应该可以。因为 getJSON 不允许 POST 请求,所以你必须再添加一个路由
@app.route('/')
def index_html():
return render_template('index.html')
@app.route("/getjson")
def json():
data = {"this":"is", "just":"a test"}
return data
并将您的 getJSON
请求更改为
$.getJSON("/getjson", function(data){
console.log("during")
console.log(JSON.stringify(data));
});