【发布时间】:2018-12-11 06:20:37
【问题描述】:
我正在尝试路由我的 Flask 路由并查看来自 Flask 的正确返回(返回在下面的代码中指示)。当我将我的页面指向mypage.com/ 时,我确实看到了输出,但是当我期待看到“hello world”时,它似乎正在我的控制台中返回 xxamp apache 索引页面。
这是我的目录列表:
/localhost
/my_dir
/js
/templates
app.py
这是我对/ 的 AJAX 调用:
js:
$(function(){
$('button').click(function(){
var user = "user";
$.ajax({
url: '/',
data: user,
type: 'POST',
success: function(response){
console.log(response);
},
error: function(error){
console.log(error);
}
});
});
});
这是我的烧瓶:
app.py:
from flask import Flask, request, send_file, render_template, json
from ftplib import FTP
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'hello world!'
if __name__ == "__main__":
app.run()
这里似乎有脱节。我相信我的 Apache 在 80 上运行,而 Flask 正在监听 5000。所以我的 javascript AJAX 调用实际上是在调用端口 80 而不是 5000,因此,为什么我认为我看到的返回值与预期不同。我必须在我的 AJAX 调用中指定端口,还是应该让烧瓶在端口 80 上监听?
【问题讨论】:
-
你是否在你的 app.py 中调用了 app.run()?像这样运行 Flask 应用程序:app.run(host='0.0.0.0', debug=True, threaded=True, port=
) -
@RogerHuang 是的,对不起,我的代码中有这个。我刚刚更新了代码。
-
使用$ curl localhost:
查看你的flask应用是否收到http请求,控制台中应该有一些有用的日志。 -
@RogerHuang OH 在运行 ajax 请求之前我必须手动运行烧瓶吗?
-
是的。您必须在本地运行服务器(可能稍后部署到其他地方)。使用以下命令:$ python app.py,您应该能够看到:* 在127.0.0.1:5000 上运行以获取更多信息:flask.pocoo.org/docs/1.0/quickstart