ajax请求数据更新vue

使用flask开启一个web服务 ./vtest1.py

from flask import  Flask, render_template
import  pickle
import  json


app = Flask(__name__)

@app.route('/')
def index():
    context = {
        'homename' : '这是首页'
    }
    return  render_template('index.html', **context)


@app.route('/homeapi')
def indexapi():
    data = {
        'name' : "lili",
        'age':29,
        'degree' : 'benke'
    }
    return json.dumps(data)


if __name__ == "__main__":
    app.run()

./templates/index.html模板文件如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>{{homename}}</h1>


<div id = 'app'>
    单选1:<input name="Fruit" type="radio"  :checked="select"/>
    单选2:<input name="Fruit2" type="radio"  :checked="select" />
    <br>
    name:<input type="text" v-model="name">
    name:<input type="text" v-bind:value="name">
    age:<input type="text" v-bind:value="age">
    degree:<input type="text" v-bind:value="degree">
</div>

</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>

    var vm =   new Vue({
            el : '#app',
            data : {
               name:'uuuu',
               age:0,
               degree:'',
               select: 'checked',
            },
            mounted : function () {
              $.ajax({
                    url: '/homeapi',
                    type: 'GET',
                    dataType: 'json',
                    beforeSend:function(){
                        //请求前的处理
                    },
                    success:function(req){
                        //请求成功时处理
                        console.log(req)
                        console.log(req.name)
                        vm.name = req.name;
                        vm.age = req.age;
                        vm.degree = req.degree;

                    },
                    complete:function(){
                        
                    },
                    error:function(){
                        //请求出错处理
                        console.log('error')
                    }

                });

            }
    })


</script>
</html>

开启flask服务


* Serving Flask app "vtest1" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [23/Jun/2020 18:43:11] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [23/Jun/2020 18:43:11] "GET /homeapi HTTP/1.1" 200 -

访问效果如下:

原文地址:https://www.cnblogs.com/harryTree/p/13183840.html