使用 Flask 和 Vue.js,你可以創建一個前后端分離的 web 應用。Flask 充當后端服務器,負責提供 API 接口;Vue.js 則用于構建動態的前端用戶界面。
Flask API服務端
在后端,你可以使用 Flask 來定義一些API endpoints,這些Endpoints返回 JSON 數據。這是一個簡單的例子:
python
Copy code
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/data', methods=['GET'])
def get_data():
data = {'Name': 'DaVinci', 'Role': 'Assistant'}
return jsonify(data)
if __name__ == '__main__':
app.run(debug=True)
運行該 Flask 應用,當你訪問 localhost:5000/api/data 時會得到一個 JSON 響應。
Vue.js 前端
接下來可以使用 Vue.js 創建前端頁面并從 Flask API 中獲取數據。這是一個簡單的 Vue.js 應用:
html
Copy code
<!DOCTYPE html>
<html>
<head>
<title>Vue.js with Flask</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="app">
{{ message }}
</div>
<script>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
mounted: function(){
axios
.get('http://localhost:5000/api/data')
.then(response => (this.message = response.data.Name))
}
});
</script>
</body>
</html>
在 mounted 鉤子函數中,我們用 Axios 從 Flask API 獲取數據。
但需要注意的是,在開發或生產環境下,通常都是將前后端分開部署,Flask 專注于提供 Restful API,Vue.js 則打包到靜態文件服務器或者 CDN 中。
在開發模式下,可能需要用到跨域請求問題(CORS),可以通過 Flask-CORS 包來解決;在生產環境下,前后端分離部署,不推薦用 Flask 做靜態文件服務器,推薦 Nginx 或者其他 CDN 服務。
每種技術棧都有其優點和缺點,你的選擇應基于你的項目需求、團隊技能以及個人喜好。如果你喜歡 Python 并且喜歡 Flask 的輕系統架構,且 前端需要強大的交互,Vue.js 是一個不錯的選擇。
- 前言
- 1.入門篇
- Python介紹
- 安裝與使用
- Python開發利器之VS Code
- 模塊安裝
- 命令行
- 一次Python無法安裝模塊的問題探索與解決之旅
- 命令運行
- Conda
- 下載地址
- 2.基礎篇
- 基礎語法
- 輸入與輸出
- with as的用法
- 注釋
- Python命令行參數
- 編碼
- 變量類型
- 列表遍歷
- 運算符
- 表達式語句
- 條件
- 循環
- 日期和時間
- 函數
- 高級語法
- @符號-裝飾器
- 模塊和包
- name
- init.py
- 錯誤和異常
- 面向對象
- 3.專題篇
- 常用功能
- Python 字符串連接
- python web
- Python CGI編程
- Python OAuth2
- 認證 Flask-HTTPAuth
- 常用命令
- 內置函數
- dir()
- print(f)
- 標準模塊
- sys
- pickle-數據序列化
- os
- IO(輸入輸出)
- 鍵盤輸入
- 文件讀寫
- 測試
- Python測試框架之pytest快速入門
- pytest-bdd快速示例和問題解決
- 基于pytest-bdd的項目目錄結構和命名規范
- python BDD 的相關概念
- Behave介紹和快速示例
- Python BDD之Behave測試報告
- Python BDD 框架比較之 pytest-bdd vs behave
- pytest進階
- Flask + pytest測試
- 參考網址
- pytest-bdd進階
- hehave進階
- 測試路徑
- python + selunium
- HTML 根據多層CSS 查找元素
- 等待執行
- 使用text 查找 span
- pytest如何在控制臺輸出
- 4.問題篇
- pip pip3 及區別
- TypeError: can only concatenate str (not "NoneType") to str
- 5.實戰篇
- matplotlib-繪圖包
- 導入類
- 命名規范
- 模塊查找
- 6.進階篇
- Flask
- Flask介紹
- Flask擴展模塊
- Flask-Login
- 問題
- Jinja2
- Flask-RESTful
- Flask-JWT-Extended
- WSGI
- Flask-SQLAlchemy
- 部署
- Flask VS Django
- Flask Web
- Flask + Vue
- Flask實戰
- Flask 標準目錄結構
- Blueprints
- 參考
- FastAPI 測試
- https 證書 Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate