
后台代码都是利用的
1.【get方式】使用jquery的get json与后台交互
前端js代码片段
1 2 3 4 5 6 7 8 | var data= {
'a' : $( 'input[name="a"]' ).val(),
'b' : $( 'input[name="b"]' ).val()
}
$.getJSON($SCRIPT_ROOT + '/_add_numbers' ,data, function (data) {
$( '#result' ).text(data.result);
$( 'input[name=a]' ).focus().select();
});
|
后端pthon代码如下
1 2 3 4 5 6 | # ajax,Get方式与js交互(非表单)采用了flask框架@app.route('/_add_numbers')def add_numbers():
"""Add two numbers server side, ridiculous but well..."""
a = request.args.get('a', 0, type=int)
b = request.args.get('b', 0, type=int)
log.info(a)
log.info(b) return jsonify(result=a + b)
|
2.【万能方式】使用jquery的ajax与后台交互,设置不同的参数,可以get也可以post
上面的例子用ajax方式,前端代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var data= {
'a': $('input[name="a"]').val(),
'b': $('input[name="b"]').val()
}
{# $.getJSON($SCRIPT_ROOT + '/_add_numbers',data, function(data) {#}
{# $('#result').text(data.result);#}
{# $('input[name=a]').focus().select();#}
{# });#}
$.ajax({
type: 'get',
url: $SCRIPT_ROOT + '/_add_numbers',
data: data,
contentType: 'application/json; charset=UTF-8',
dataType: 'json',
success: function(data) {
$('#result').text(data.result);
$('input[name=a]').focus().select();
},
error: function(xhr, type,xxx) {
alert('error ')
}
});
|
后台代码不便依然是
1 2 3 4 5 6 | # ajax,Get方式与js交互(非表单)@app.route('/_add_numbers')def add_numbers():
"""Add two numbers server side, ridiculous but well..."""
a = request.args.get('a', 0, type=int)
b = request.args.get('b', 0, type=int)
log.info(a)
log.info(b) return jsonify(result=a + b)
|
3.用ajax补充一个post方式的例子
前端js如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function testmethod ()
{
alert( 'rabbit' );
var data = {
"name" : "test"
}
$.ajax({
type: 'POST' ,
url: '/login' ,
data:data,
contentType: 'application/json; charset=UTF-8' ,
dataType: 'json' ,
success: function (data) {
$( '#result' ).text(data.username);
},
error: function (xhr, type) {
alert( 'error ' )
}
});
}
|
后台代码如下:
1 2 3 4 5 | # ajax ,post方式与js交互(表单提交)
@app.route('/login',methods=['POST'])
def login():
log.info('lalal')
return jsonify(username='xixi',pwd='123')
|
这样就很轻松的实现了前端与后台的交互
本质上,前端与后端交互都是通过json完成的
至于表单提交,就不需要写js了,在form表单里面有有一个submit类型按钮,点击时,会自动提交到后台对应的路由上进行处理。对于表单提交,后台可以用
1 | s=request.form.get('username',None)
|
来捕捉前端网页的值。但是如果是非表单提交,则需要用js获取值后,通过data参数传入到后端才行。