在网站当中,不可缺少的是帐号管理以及 Authentication 的功能。由於每个使用者会有其专属的纪录,因此使用者的管理以及相关操作是非常重要的。
若要管理使用者,Django 有内建的使用者相关的 class 以及 function,我们可以进行运用。
今天带大家实作创建使用者的 API,让大家了解如何透过 DRF 建立使用者管理功能之 API。
首先我们先建立一个名为 users 的 app ,使用这个 app,管理和使用者设定相关的功能。
docker-compose sh -c 'python manage.py startapp users'
建立 app 之後,再样的我们需要再 settings.py 中的 INSTALLED_APPS中加入我们新增的 app 名称
INSTALLED_APPS = [
...
'users',
...
]
建立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 ,这边使用我们昨天介绍过的 Concrete View Classes 中 CreateAPIView,实作create 的功能。
from user.serializers import UserSerializer
from rest_framework import generics
class CreateUserView(generics.CreateAPIView):
serializer_class = UserSerializer
最後设定相对路径,即完成 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
欢迎来到「30 天 Java 从陌生到更陌生」 我是 Piglet,接下来的 30 天,会带着初踏入...
Security Threats Denial of Service (DoS) Attack: ...
https://codeforces.com/contest/1557/problem/B 程序码:...
在一个专案Build完成後,通常会跑一些测试来检测这个专案到底能够承受多少的流量与有没有一些会影响使...
我们接续上一篇完成一些未完成的功能。 完成按钮 & 返回按钮 这两个按钮在整个篇章中,属於比...