
Django
使用 Django REST Framework 创建自定义用户
在使用 Django REST Framework 进行 Web 开发时,经常需要自定义用户模型来满足项目的需求。Django REST Framework 提供了方便的方式来创建自定义用户模型,并且可以轻松地与认证和授权系统集成。首先,我们需要创建一个新的 Django 项目,并安装 Django REST Framework。在终端中运行以下命令:$ Django-admin startproject customuserproject$ cd customuserproject$ pip install Djangorestframework安装完成后,在
settings.py 文件的 INSTALLED_APPS 列表中添加 rest_framework:PythonINSTALLED_APPS = [ ... 'rest_framework',]接下来,我们需要创建一个自定义用户模型。在 Django 中,我们可以通过继承
ABStractUser 类来创建自定义用户模型。在项目的根目录下创建一个新的应用:$ Python manage.py startapp customuserapp在
customuserapp 目录下的 models.py 文件中,定义自定义用户模型:Pythonfrom Django.contrib.auth.models import ABStractUserfrom Django.db import modelsclass CustomUser(ABStractUser): # 添加自定义字段 bio = models.TextField(max_length=500, blank=True) location = models.CharField(max_length=30, blank=True)接下来,我们需要更新
settings.py 文件,指定新的用户模型。将以下内容添加到 settings.py 文件末尾:PythonAUTH_USER_MODEL = 'customuserapp.CustomUser'然后运行以下命令,创建数据库迁移文件并应用迁移:
$ Python manage.py makemigrations$ Python manage.py migrate现在,我们已经成功地创建了自定义用户模型。接下来,我们可以通过 Django REST Framework 的序列化器来创建用户的 API 视图。在
customuserapp 目录下创建一个新的文件 serializers.py,定义用户模型的序列化器:Pythonfrom rest_framework import serializersfrom .models import CustomUserclass CustomUserSerializer(serializers.ModelSerializer): class Meta: model = CustomUser fields = ['id', 'username', 'emAIl', 'bio', 'location']然后,在
customuserapp 目录下创建一个新的文件 views.py,定义用户的 API 视图:Pythonfrom rest_framework import viewsetsfrom .models import CustomUserfrom .serializers import CustomUserSerializerclass CustomUserViewSet(viewsets.ModelViewSet): queryset = CustomUser.objects.all() serializer_class = CustomUserSerializer现在,我们已经创建了用户的 API 视图。接下来,我们需要配置 URL 路由,以便可以访问这些 API 视图。在项目的根目录下的
urls.py 文件中,添加以下内容:Pythonfrom Django.contrib import adminfrom Django.urls import include, pathfrom rest_framework import routersfrom customuserapp import viewsrouter = routers.DefaultRouter()router.register(r'users', views.CustomUserViewSet)urlpatterns = [ path('admin/', admin.site.urls), path('api/', include(router.urls)),]现在,我们可以运行开发服务器,并访问 /api/users/ 来查看用户的 API 视图了:$ Python manage.py runserver通过以上步骤,我们成功地使用 Django REST Framework 创建了自定义用户模型,并创建了相应的 API 视图。开发者可以根据项目的需求,进一步扩展和定制用户模型和 API 视图。案例代码:
Python# models.pyfrom Django.contrib.auth.models import ABStractUserfrom Django.db import modelsclass CustomUser(ABStractUser): # 添加自定义字段 bio = models.TextField(max_length=500, blank=True) location = models.CharField(max_length=30, blank=True)# serializers.pyfrom rest_framework import serializersfrom .models import CustomUserclass CustomUserSerializer(serializers.ModelSerializer): class Meta: model = CustomUser fields = ['id', 'username', 'emAIl', 'bio', 'location']# views.pyfrom rest_framework import viewsetsfrom .models import CustomUserfrom .serializers import CustomUserSerializerclass CustomUserViewSet(viewsets.ModelViewSet): queryset = CustomUser.objects.all() serializer_class = CustomUserSerializer# urls.pyfrom Django.contrib import adminfrom Django.urls import include, pathfrom rest_framework import routersfrom customuserapp import viewsrouter = routers.DefaultRouter()router.register(r'users', views.CustomUserViewSet)urlpatterns = [ path('admin/', admin.site.urls), path('api/', include(router.urls)),]通过以上代码,我们可以创建自定义用户模型,并使用 Django REST Framework 创建相应的 API 视图。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号