• 技术文章 >常见问题 >Python常见问题

    python和js如何交互

    silencementsilencement2019-09-19 10:00:51原创2799

    后台代码都是利用的

    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参数传入到后端才行。

    专题推荐:python
    上一篇:python在哪打开 下一篇:python怎么删除文件、目录

    相关文章推荐

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网