我在 Flask 中使用 jQuery,并且一直在使用我在runnable上找到 的将两个数字相加的简单示例。
我正在使用 Flask-Appbuilder 并查看所有设置以显示模板,效果很好。我将 jQuery 代码包含在模板中,它会显示它应该显示的内容。
在 Flask 方面,我创建了视图,以及视图中用于呈现模板和接收 jQuery GET 请求中的变量的函数。
当我单击模板上的 jQuery 链接将两个数字相加时,我在 python控制台中看到 404 错误。
[07/Apr/2017 09:48:53] "GET /_add_numbers?a=1&b=1 HTTP/1.1" 404 -
这是我的模板中的内容:
{% extends "appbuilder/base.html" %}
{% block content %}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"
rel="stylesheet">
<script type=text/javascript>
$(function() {
$('a#calculate').bind('click', function() {
$.getJSON('/_add_numbers', {
a: $('input[name="a"]').val(),
b: $('input[name="b"]').val()
}, function(data) {
$("#result").text(data.result);
});
return false;
});
});
</script>
<body>
<div class="container">
<div class="header">
<h3 class="text-muted">How To Manage JSON Requests</h3>
</div>
<hr/>
<div>
<p>
<input type="text" size="5" name="a"> +
<input type="text" size="5" name="b"> =
<span id="result">?</span>
<p><a href="javascript:void();" id="calculate">calculate server side</a>
</form>
</div>
</div>
</body>
</html>
{% endblock %}
我的烧瓶视图如下所示:
class MyView(BaseView):
default_view = 'sale'
@expose('/sale', methods=['GET'])
@has_access
def sale(self):
return self.render_template('sale.html')
@expose('/_add_numbers', methods=['GET', 'POST'])
@has_access
def add_numbers(self):
a = request.args.get('a', 0, type=int)
b = request.args.get('b', 0, type=int)
return jsonify(result=a + b)
任何指导将不胜感激。
获取屏幕截图 - https://imgur.com/a/0rxiN
发布截图 - http://imgur.com/Ns1BEkE