Django Rest Framework用户登录认证步骤解析

5 下载量 100 浏览量 更新于2024-09-01 1 收藏 181KB PDF 举报
"django rest framework 实现用户登录认证详解" 这篇教程介绍了如何使用Django Rest Framework (DRF) 创建一个用户登录认证系统。DRF是Django的一个强大扩展,专门用于构建RESTful API。 1. 安装Django Rest Framework 首先,通过Python的包管理器pip来安装DRF。在命令行输入: ``` pip install djangorestframework ``` 这将下载并安装所需的库,使得在Django项目中可以使用DRF的功能。 2. 创建项目与应用 创建一个新的Django项目,然后在项目中创建一个应用。项目的目录结构通常包括`manage.py`、`settings.py`、`urls.py`等文件,而应用则包含`models.py`、`views.py`、`serializers.py`等文件。 3. 配置settings.py 在`settings.py`中,配置数据库连接,这里以MySQL为例。设置`DATABASES`字典,包括数据库引擎、主机、端口、名称、用户名和密码。此外,还可以添加其他选项,如`sql_mode`来调整SQL语句的行为。 ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': '3306', 'NAME': 'dbname', 'USER': 'username', 'PASSWORD': 'password', 'OPTIONS': { 'sql_mode': 'traditional' }, } } ``` 接下来,将DRF和自定义的应用添加到`INSTALLED_APPS`列表中,以便它们在项目中被识别和使用。 ```python INSTALLED_APPS = [ # ... 'rest_framework', 'api', # 自定义应用的名称 ] ``` 4. 设计用户模型 在`models.py`文件中,定义用户信息模型。这里有两个模型:`User` 和 `userToken`。`User` 模型用于存储用户名和密码,`userToken` 模型与`User`建立一对一关系,用于存储用户登录后的令牌。 ```python from django.db import models class User(models.Model): username = models.CharField(max_length=32, unique=True) password = models.CharField(max_length=32) class Meta: db_table = 'user' verbose_name = verbose_name_plural = '用户信息表' class userToken(models.Model): username = models.OneToOneField(to='User', on_delete=models.DO_NOTHING) token = models.CharField(max_length=60) class Meta: db_table = 'user_token' verbose_name = verbose_name_plural = '用户token表' ``` 运行命令`python manage.py makemigrations`和`python manage.py migrate`来创建对应的数据库表。 5. 编写登录验证视图 在`views.py`文件中,编写处理用户登录的视图函数。这通常涉及到验证用户名和密码,以及生成和存储用户的访问令牌。 然而,具体实现这部分代码没有在摘要中给出,但通常会涉及到检查用户输入的凭证是否匹配数据库中的记录,如果匹配成功,生成一个唯一的令牌,并将其关联到对应用户。这个过程可能还会涉及到序列化(serializing)用户信息,以便在API响应中返回。 6. 创建API路由 最后,需要在项目的URL配置中添加API路由,指向刚刚创建的视图,使得客户端可以通过特定URL发起登录请求。 Django Rest Framework 提供了强大的工具来构建API,包括身份验证和权限管理。在这个例子中,通过创建用户模型、设置数据库连接、编写视图逻辑,以及配置URL,可以实现一个基本的用户登录认证功能。