当前位置:   article > 正文

Flask学习总结笔记(12) -- 利用ajax进行前后端数据交互_使用ajax完成python flask前端与后台数据的交互

使用ajax完成python flask前端与后台数据的交互

Web应用基于ajax进行前后端数据交互,一般利用Get或者Post方式来实现。比较流行的做法是前端提交表单数据,后端处理完毕后返回Json数据到前端进行显示。

0x01 Get提交

(1)前端:

<script src="{{url_for('static',filename='js/jquery.js')}}"></script>
<!--Get请求-->
<script>
    var data={
        'name':'kikay',
        'age':18
    }
    $.ajax({
        type:'GET',
        url:'{{url_for("test.test_get")}}',
        data:data,
        dataType:'json',//希望服务器返回json格式的数据
        success:function(data){
            alert(JSON.stringify(data));
            alert(data['test'])
        }
    });
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

(2)后端:

@test.route('/test_get/',methods=['POST','GET'])
def test_get():
    #获取Get数据
    name=request.args.get('name')
    age=int(request.args.get('age'))
    #返回
    if name=='kikay' and age==18:
        return jsonify({'result':'ok'})
    else:
        return jsonify({'result':'error'})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

抓包:

0x02 Post方式

(1)前端:

<script src="{{url_for('static',filename='js/jquery.js')}}"></script>
<!--Post请求-->
<script>
    var data={
        'name':'kikay',
        'age':18
    }
    $.ajax({
        type:'POST',
        url:'{{url_for("test.test_post")}}',
        data:data,
        dataType:'json',//希望服务器返回json格式的数据
        success:function(data){
            alert(JSON.stringify(data));
        }
    });
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

(2)后端:

@test.route('/test_post/',methods=['POST','GET'])
def test_post():
    #获取POST数据
    name=request.form.get('name')
    age=int(request.form.get('age'))
    #返回
    if name=='kikay' and age==18:
        return jsonify({'result':'ok'})
    else:
        return jsonify({'result':'error'})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

抓包:

0x03 Json提交

(1)前端:

如果前端要向后端提交Json格式的数据,需要设置content-type参数为application/json,并且将data参数设置为字符串形式。

<script src="{{url_for('static',filename='js/jquery.js')}}"></script>
<!--Json-->
<script>
    var data={
        'name':'kikay',
        'age':18
    }
    $.ajax({
        type:'POST',
        url:'{{url_for("test.test_json")}}',
        data:JSON.stringify(data),  //转变传递的参数为字符串格式
        contentType:'application/json; charset=UTF-8', //指定传递给服务器的是Json格式数据
        dataType:'json',//希望服务器返回json格式的数据
        success:function(data){
            alert(JSON.stringify(data));
        }
    });
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

(2)后端:

@test.route('/test_json/',methods=['POST','GET'])
def test_json():
    #获取JSON数据
    data=request.get_json()
    name=data.get('name')
    age=int(data.get('age'))
    #返回
    if name=='kikay' and age==18:
        return jsonify({'result':'ok'})
    else:
        return jsonify({'result':'error'})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

抓包:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/66528
推荐阅读
相关标签
  

闽ICP备14008679号