使用 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