我想写一个html文件里面用vue2,它会在vscode中用live server运行,当点击里面的一个按钮的时候会向后端的FLASK发出一个post请求内容是一个字符串”apple"。后端收到请求后返回这个请求中的字符串。最后前端将收到的返回数据打印在控制台上。给出完整的前端html代码以及后端用python写的flask的代码。以及他们详细的解释。(其中前端运行在locakhost的8081端口,后端运行在localhost的500端口,需要解决跨域问题)
时间: 2023-06-02 13:08:03 浏览: 180
Vue环境搭建+VSCode+Win10的详细教程
以下是代码实现以及代码解释:
前端 HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue2 + Flask Demo</title>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
<button @click="sendRequest()">发请求</button>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
response: ''
},
methods: {
sendRequest() {
fetch('http://localhost:5000', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({text: 'apple'})
})
.then(response => response.json())
.then(data => {
this.response = data.text;
console.log(this.response);
})
}
}
});
</script>
</body>
</html>
```
代码解释:
1. 在 HTML 文件中引入 Vue.js
2. 创建 Vue 实例,将其绑定到 id 为 app 的 div 上
3. 设置 data 属性,用于存储从后端接收到的数据
4. 创建 sendRequest 方法,当点击按钮时触发,通过 fetch 方法向后端发送 POST 请求
5. 将请求中的字符串 'apple' 转化为 JSON 格式,用于传递给后端
6. 接收到后端返回的数据,并将其存储到 data 属性中,并在控制台上打印出来
后端 Flask 代码:
```python
from flask import Flask, request, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/', methods=['POST'])
def process_text():
data = request.get_json()
text = data['text']
return jsonify({'text': text})
if __name__ == '__main__':
app.run(debug=True)
```
代码解释:
1. 导入 Flask 和 CORS 模块
2. 创建 Flask 实例,并将其绑定到本地 5000 端口上
3. 设置跨域请求支持
4. 创建 process_text 方法,接收前端发送的 POST 请求中包含的字符串
5. 将字符串存储到变量 text 中,并将其封装成 JSON 格式进行返回
6. 在主函数中启动服务,开启 debug 模式方便调试
前端运行在 localhost:8081 端口,后端运行在 localhost:5000 端口。
需要解决跨域问题,通过 Flask-CORS 模块来解决。
当点击按钮时,前端会向后端发送一个包含字符串 'apple' 的 POST 请求,后端会将其解析并返回。
前端接收到后端返回的数据并将其打印在控制台上。
阅读全文