django rest_framework写一段登录代码
时间: 2023-06-02 08:06:59 浏览: 64
好的,以下是一段使用 Django Rest Framework 实现登录的代码示例:
```python
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework.authtoken.models import Token
from django.contrib.auth import authenticate, login
class LoginView(APIView):
def post(self, request, format=None):
# 获取前端传来的用户名和密码
username = request.data.get('username')
password = request.data.get('password')
# 使用 Django 自带的认证方法进行验证
user = authenticate(request, username=username, password=password)
if user is not None:
# 登录成功,创建或更新 Token
token, created = Token.objects.get_or_create(user=user)
# 将 Token 返回给前端
return Response({'token': token.key})
else:
# 登录失败
return Response({'error': '用户名或密码错误'}, status=status.HTTP_400_BAD_REQUEST)
```
在这个示例中,我们创建了一个 `LoginView` 类,其中 `post()` 方法接收前端发送过来的 `username` 和 `password`,并使用 Django 的验证方法 `authenticate()` 进行用户认证。如果认证成功,我们将创建一个 `Token` 并返回给前端,如果认证失败,我们将返回一个 `error` 字段和 HTTP 状态码 400。
**注意:**此为示例代码,你需要按照你的具体情况进行修改。同时,请确保安全性,不要将用户的密码明文保存在数据库中,建议使用加盐哈希存储密码。