Django REST framework 实现用户注册 API 教程

Ryan
Ryan
发布时间:2026-10-11 | 3人浏览过
原创

本文介绍如何使用 Django 和 REST framework 构建用户注册 API。通过配置项目、编写视图类处理 POST 请求、创建数据库模型以及配置路由,实现用户数据的存储与返回。文章包含完整的代码示例、CSRF 处理方案及测试方法,帮助开发者快速掌握 Django API 开发流程。

环境准备与项目初始化

在开始编写 API 之前,需要确保开发环境已安装必要的依赖。本文基于 Django 2.2.1 和 djangorestframework 3.11.0 版本进行演示。首先,通过 pip 安装 REST framework:

pip install djangorestframework

接着,初始化 Django 项目与应用。执行以下命令创建名为 magic_chat 的项目和 chat_user 的应用:

django-admin startproject magic_chat
django-admin startapp chat_user

创建完成后,运行数据库迁移命令以生成必要的表结构:

python manage.py migrate

配置 settings 文件

为了让 Django 识别并使用 REST framework 以及新创建的应用,需要修改 settings.py 文件中的 INSTALLED_APPS 配置。将 'rest_framework' 和 'chat_user.apps.ChatUserConfig' 添加到列表中:

INSTALL_APP = [
  ...
  'rest_framework',
]
INSTALL_APP = [
  ...
'rest_framework',
'chat_user.apps.ChatUserConfig',
]

编写注册视图 (Views)

在 chat_user 应用的 views.py 文件中,我们需要定义一个处理注册逻辑的视图类。这里使用 APIView 来手动处理 HTTP 请求,以便更清晰地控制响应内容。

核心逻辑如下:

  1. 从请求数据中提取 username 和 password。
  2. 使用 Django 内置的 User.objects.create_user 方法创建用户,该方法会自动处理密码哈希。
  3. 保存用户对象。
  4. 构造包含状态码和消息的上下文字典。
  5. 返回 Response 对象。

具体代码如下:

from django.contrib.auth.models import User
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView

class Register(APIView):
    def post(self, request):
        """
        注册
        """
        username = request.data.get('username')
        password = request.data.get('password')
        user = User.objects.create_user(
            username=username, password=password)
        user.save()
        context = {
            "status": status.HTTP_200_OK,
            "msg": "用户注册成功"
        }
        return Response(context)

配置 URL 路由

为了使 API 可访问,需要将视图映射到具体的 URL 路径。首先在项目根目录的 urls.py 中包含应用的路由:

urlpatterns = [
  path('admin/', admin.site.urls),
  path('', include('chat_user.urls')),
]

然后在 chat_user 应用下创建或编辑 urls.py,将 /register/ 路径指向 Register 视图:

from django.urls import path
from . import views
urlpatterns = [
  path('register/', views.Register.as_view()),
]

启动服务与测试

配置完成后,启动 Django 开发服务器:

python manage.py runserver

使用 POST 请求访问 http://127.0.0.1:8000/register/ 进行注册测试。如果一切正常,服务器应返回状态码 200 以及消息 "用户注册成功"。

处理 CSRF 错误

由于 Django 默认启用 CSRF 保护,直接通过某些客户端(如 Postman 或前端 JS)发送 POST 请求时可能会遇到 CSRF 验证失败。解决方法是在请求头(Headers)中添加 X-CSRFToken 字段,其值需与浏览器 Cookie 中的 csrftoken 保持一致。

以上就是 Django 使用 REST framework 编写用户注册 API 的详细内容,更多关于 Django API 开发、Python Web 框架及 RESTful 设计的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表