您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關實現Vue和Flask通信的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
這里我們通過axios來連接Vue前端和Flask后端,使用AJAX請求進行通信。使用如下命令安裝
npm install axios
axios的使用格式:
import axios from 'axios'; export default { data: function () { return { serverResponse: 'res_test' }; }, methods: { getData() { // 設置對應python的接口,這里使用的是localhost:5000 const path = 'http://127.0.0.1:5000/getMsg'; // 這里要使用 res =>表示返回的數據 axios.get(path).then(res => { // 這里服務器返回response為一個json對象 // 通過.data來訪返回的數據,然后在通過.變量名進行訪問 // 可以直接通過response.data取得key-value var msg = res.data.msg; this.serverResponse = msg; // 因為不能直接使用this作為指針,因此在這之前將this賦給了then指針 alter('Success' + response.status + ',' + response.data + ',' + msg); // 成功后顯示提示 }).catch(error => { console.error(error); }); } }, }
對./components/HelloWorld.vue文件進行改寫。代碼如下:
<!-- html部分 --> <template> <div> <span>{{ serverResponse }}</span> <!--這里使用{{}}來引用JavaScript中賦給this的值--> <button @click="getData">get data</button> </div> </template> <!-- js部分 --> <script> import axios from 'axios'; export default { data: function () { return { serverResponse: 'res_test' }; }, methods: { getData() { // 設置對應python的接口,這里使用的是localhost:5000 const path = 'http://127.0.0.1:5000/getMsg'; axios.get(path).then(res => { // 這里服務器返回response為一個json對象 // 通過.data來訪返回的數據,然后在通過.變量名進行訪問 // 可以直接通過response.data取得key-value var msg = res.data.msg; this.serverResponse = msg; // 因為不能直接使用this作為指針,因此在這之前將this賦給了then指針 alter('Success' + response.status + ',' + response.data + ',' + msg); // 成功后顯示提示 }).catch(error => { console.error(error); }); } }, } </script> <!-- css部分 --> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> h2, h3 { font-weight: normal; } ul { list-style-type: none; padding: 0; } li { display: inline-block; margin: 0 10px; } a { color: #42b983; } </style>
這里主要實現了通過單擊按鈕來和服務器端進行交互獲得數據并傳回前端,將得到的數據重新來對前端進行渲染。
得到如上頁面之后,我們單擊get date按鈕,就會像后端發送GET請求,后端服務器監聽到請求之后就會返回對應的數據。
from flask import Flask from flask import jsonify from flask_cors import CORS app = Flask(__name__) cors = CORS(app, resources={r"/getMsg": {"origins": "*"}}) @app.route('/') def hello_world(): return 'test!' # 監聽127.0.0.1:5000/getMsg請求 @app.route('/getMsg', methods=['GET', 'POST']) def home(): response = { 'msg': 'Hello, Python !' } return response if __name__ == '__main__': app.run()
Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。
感謝各位的閱讀!關于“實現Vue和Flask通信的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。