flask-结合vue2小案例
flask后端代码
先安装插件:flask-cors  pip install flask-cors
app.py
from flask import Flask,jsonify,abort
from flask_cors import  cross_origin  
# cross_origin这个装饰器解决前后端跨域问题
app = Flask(__name__)
# 真实数据应该从数据库查询出来.这里测试数据.
jobs=[
    {'id':1,'post':'运维工程师','level':'教授'},
    {'id':2,'post':'产品经理','level':'初级'},]
# http://127.0.0.1:5000/api/v1.0/jobs
@app.route('/api/v1.0/jobs',methods=['get'])
@cross_origin()   #########
def get_jobs():
    return jsonify({'jobs':jobs})
# http://127.0.0.1:5000/api/v1.0/job/2
@app.route('/api/v1.0/job/<int:id>',methods=['get'])
@cross_origin()    #########
def get_job_byId(id):
    task=filter(lambda   t: t['id']==id,jobs)
    task=list(task)
    if len(task)==0:
        abort(404)
    return jsonify({'job':task})
if __name__ == '__main__':
    app.run(debug=True)
前端vue2代码
用axios.get 获取后端接口返回给的数据
post_list.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="app">
    <button @click="getJobs">拉取</button>
    <h4>职位列表:</h4>
    <li v-for="job in jobs">
        编号:{{job.id}} --- 职位:{{job.post}} --- 级别:{{job.level}}
    </li>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {name: 'Yancy', jobs: []},
        methods: {
            getJobs: function () {
                var self = this
                axios.get('http://127.0.0.1:5000/api/v1.0/jobs').then(
                    function (response) {
                        self.jobs = response.data.jobs
                    }, function (error) {
                    }
                )
            }
        }
    })
</script>
</body>
</html>
结果
点拉取按钮就能从flask后端接口获取到职务列表数据.
然后通过vue2的循环v-for循环渲染到页面上.
职位列表:
编号:1 --- 职位:运维工程师 --- 级别:教授
编号:2 --- 职位:产品经理 --- 级别:初级
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号