iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0

在網站當中,不可缺少的是帳號管理以及 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 的設定以及用法,但是優點是我們可以有效率的建立使用者相關管理功能~


上一篇
[Day 23] - Django-REST-Framework Concrete View Classes 介紹
下一篇
[Day25] - Django-REST-Framework Authencation Permission 介紹
系列文
使用Django Rest Framework, Docker, Docker Compose 製作後端服務應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言