我在Flask中玩jQuery,并且一直在使用一个简单的例子,我在runnable上找到了将两个数字加起来的例子。flask jquery GET 404
我正在使用Flask-Appbuilder,并有一个视图所有安装程序来显示模板,它工作正常。我将jQuery代码添加到模板中,并显示它应该显示的内容。
在Flask端,我创建了View和视图中的函数来呈现模板并接收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)
任何指导,将不胜感激。
GET截图 - https://imgur.com/a/0rxiN
帖子截图 - http://imgur.com/Ns1BEkE
我从来没有使用过FAB,但会怀疑'@ has_access'装饰器会干扰某种方式。如果你删除它,它会工作吗? –
当我点击链接 –
时,我删除了它,并仍然在控制台中具有相同的404。就像我说的,我不了解FAB。如果您只是试验jQuery,那么使用标准Flask路由和视图可能会更容易。 –