Django 后端获取前端vue数据
时间: 2024-04-29 19:25:30 浏览: 242
期末大作业基于django后端+vue前端的电商比价系统源码.zip
5星 · 资源好评率100%
要在 Django 后端获取前端 Vue 数据,有以下几种方法:
1. 发送 Ajax 请求
前端通过 Ajax 请求将数据发送到 Django 后端,Django 后端接收请求并处理数据。
Vue 代码:
```
axios.post('/api/data', {
data: 'hello world'
})
```
Django 代码:
```
from django.http import JsonResponse
def data(request):
data = request.POST.get('data')
# 处理数据
return JsonResponse({'message': 'success'})
```
2. 表单提交
前端通过表单提交将数据发送到 Django 后端,Django 后端接收请求并处理数据。
Vue 代码:
```
<form method="post" action="/api/data">
<input type="hidden" name="data" value="hello world">
<button type="submit">提交</button>
</form>
```
Django 代码:
```
from django.http import JsonResponse
def data(request):
data = request.POST.get('data')
# 处理数据
return JsonResponse({'message': 'success'})
```
3. WebSocket
使用 WebSocket 实时通信,前端通过 WebSocket 将数据实时发送到 Django 后端,Django 后端接收请求并处理数据。
Vue 代码:
```
const socket = new WebSocket('ws://localhost:8000/ws/')
socket.onopen = () => {
socket.send('hello world')
}
socket.onmessage = (event) => {
// 处理数据
}
```
Django 代码:
```
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
# 处理数据
await websocket.send('success')
start_server = websockets.serve(echo, 'localhost', 8000)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
```
需要注意的是,WebSocket 需要使用第三方库 `websockets`,需要安装。
阅读全文