django接受前端发来的axios请求,其中有表单参数username,password请给出模板
时间: 2024-03-24 10:41:37 浏览: 108
使用axios请求时,发送formData请求的示例
5星 · 资源好评率100%
以下是一个简单的 Django 模板,可以接受前端发来的 axios 请求,并通过表单参数 username 和 password 获取用户输入的数据:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Django Axios Demo</title>
</head>
<body>
<h1>Django Axios Demo</h1>
<form id="login-form">
<div>
<label for="username">Username:</label>
<input type="text" name="username" id="username">
</div>
<div>
<label for="password">Password:</label>
<input type="password" name="password" id="password">
</div>
<button type="submit">Login</button>
</form>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
const form = document.getElementById('login-form');
form.addEventListener('submit', (event) => {
event.preventDefault();
const username = form.querySelector('#username').value;
const password = form.querySelector('#password').value;
axios.post('/login/', { username, password })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
});
</script>
</body>
</html>
```
在上面的模板中,我们创建了一个表单,其中包含一个用户名输入框和一个密码输入框,还有一个提交按钮。当用户点击提交按钮时,我们使用 axios 发送一个 POST 请求到 `/login/` URL,同时将用户名和密码作为请求体中的数据发送。
在 Django 中,我们需要创建一个视图来处理这个请求,并返回一个响应。以下是一个简单的视图函数,可以接受这个 POST 请求,并获取表单参数中的用户名和密码:
```python
from django.http import JsonResponse
def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
# 进行登录验证等操作
# 返回 JSON 响应,表示登录成功或失败
return JsonResponse({'status': 'success'})
else:
# 返回错误响应,表示请求方法不正确
return JsonResponse({'status': 'error', 'message': 'Invalid request method'})
```
在上面的视图函数中,我们首先检查请求方法是否为 POST,然后从请求体中获取表单参数中的用户名和密码。接下来,我们可以进行登录验证等操作,并返回一个 JSON 响应,表示登录成功或失败。如果请求方法不正确(不是 POST),则返回一个错误响应。
阅读全文