身份验证是保障任何 Web 应用程序安全的关键环节。在 Django REST Framework (DRF) 中,基本身份验证提供了一种使用用户名和密码来验证用户身份的简便方法。这种方法构建在 Django 内置的身份验证系统之上,允许 API 限制访问,并确保只有授权用户才能与受保护的端点进行交互。
Django 中的用户认证系统
第一步: 创建 Django 项目和应用
> django-admin startproject core
> cd core
> python manage.py startapp authentication
文件结构:
!filng文件结构
第二步: 在 settings.py 文件的 Installed_Apps 中注册应用名称。
> INSTALLED_APPS = [
> "django.contrib.admin",
> "django.contrib.auth",
> "django.contrib.contenttypes",
> "django.contrib.sessions",
> "django.contrib.messages",
> "django.contrib.staticfiles",
> "authentication", // App name
> ]
第三步:views.py 视图逻辑
视图用于处理模板渲染以及登录、注册和主页的表单数据处理。
- home(request)
当用户访问主页时渲染 home.html 模板。
- login_page(request)
处理用户登录。当收到 POST 请求时,它从表单中获取用户名和密码。它会检查用户是否存在;如果不存在,则显示错误消息并重定向回登录页面。
- register_page(request)
处理用户注册。当收到 POST 请求时,它从表单中获取名、姓、用户名和密码。它会检查用户名是否已被占用;如果是,则显示消息并重定向回注册页面。
Python
CODEBLOCK_4a15c9cc
第四步:models.py 模型定义
- 从 Django 导入 models 模块,用于创建和管理数据库模型。
- 从 django.contrib.auth.models 导入 User 模型,该模型提供了 Django 内置的身份验证系统,用于处理用户数据和权限。
Python
CODEBLOCK_809ed1f8
迁移模型:
> python manage.py makemigrations
> python manage.py migrate
创建超级用户:
> python manage.py createsuperuser
第五步:urls.py 路由配置
该文件定义了 URL 路由,并将它们连接到 Django 应用程序中的视图。
- 导入 URL 路由、视图、管理界面和文件处理所需的模块。
- 定义主页、管理页面、登录等 URL 模式。