[Day24] - Django-REST-Framework User Management

在网站当中,不可缺少的是帐号管理以及 Authentication 的功能。由於每个使用者会有其专属的纪录,因此使用者的管理以及相关操作是非常重要的。

建立 User 应用

若要管理使用者,Django 有内建的使用者相关的 class 以及 function,我们可以进行运用。
今天带大家实作创建使用者的 API,让大家了解如何透过 DRF 建立使用者管理功能之 API。

创建 users app 及设定

首先我们先建立一个名为 users 的 app ,使用这个 app,管理和使用者设定相关的功能。

docker-compose sh -c 'python manage.py startapp users'

建立 app 之後,再样的我们需要再 settings.py 中的 INSTALLED_APPS中加入我们新增的 app 名称

INSTALLED_APPS = [
...
'users',
...
]

serializers.py

建立serializers.py,这边可以使用 django.contrib.auth 的 get_user_model 取得 user 的 model,

from rest_framework import serializers
from django.contrib.auth import get_user_model

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = get_user_model()
        fields = ('password', 'name')

    def create(self, validated_data):
        return get_user_model().objects.create_user(**validated_data)

views.py

接着编写 views.py ,这边使用我们昨天介绍过的 Concrete View Classes 中 CreateAPIView,实作create 的功能。

from user.serializers import UserSerializer
from rest_framework import generics

class CreateUserView(generics.CreateAPIView):
    serializer_class = UserSerializer

urls.py

最後设定相对路径,即完成 create user 的 api 了 ~

from django.urls import path
from .views import CreateUserView
app_name = 'user'
urlpatterns = [
    path('create/', CreateUserView.as_view(), name='create'),
]

结语

如此就完成了 create 使用者的功能,由於 user 的 model ,Django 本身已经建立好,甚至与 admin ,权限功能皆有相互连结,因此我们在使用上,可以透过 Django 本身的基础进行运用。缺点是,我们必须要熟悉 Django 的设定以及用法,但是优点是我们可以有效率的建立使用者相关管理功能~


<<:  day22: declarative vs. imperative

>>:  Day 23:Ansible 的基本介绍

[Day01] CH00:Hello, Java!

欢迎来到「30 天 Java 从陌生到更陌生」 我是 Piglet,接下来的 30 天,会带着初踏入...

Day27:危机意识

Security Threats Denial of Service (DoS) Attack: ...

[C 语言笔记--Day09] 解题纪录:Moamen and k-subarrays

https://codeforces.com/contest/1557/problem/B 程序码:...

Day 22 : Docker化Jmeter 与连结Jenkins自动化测试

在一个专案Build完成後,通常会跑一些测试来检测这个专案到底能够承受多少的流量与有没有一些会影响使...

【Side Project】 (老板)订单清单UX功能实作

我们接续上一篇完成一些未完成的功能。 完成按钮 & 返回按钮 这两个按钮在整个篇章中,属於比...