[Series1. DashBoard 만들기] - 7. View 만들기 (2)

django_apps·2021년 9월 19일
0

django apps

목록 보기
7/17
post-thumbnail

이번 포스팅에서는, View의 CRUD 처리를 추가하고 django/restframework 의 User 등록관련 모듈을 추가하여 권한처리를 위한 최소 준비를 해보자.

User 회원등록 / 로그인 기능을 추가하자

django 에서는 restframework 라는 API 개발 라이브러리를 추가하여 간단히 회원관련 기능을 만들 수 있다.

먼저 필요한 라이브러리를 pip 커맨드를 이용하여 설치한다.

아래 커맨드를 실행한다.

pip install django-allauth
pip install django-rest-auth

문제 없이 설치되었다면 settings.py 에서 아래 앱들을

    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'rest_auth',
    'rest_auth.registration',

INSTALLED_APPS 배열에 추가하자

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',

    'rest_framework',

    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'rest_auth',
    'rest_auth.registration',

    'dashboard_core',
]

다음으로는, User가 접근할 회원가입 관련 URL을 매핑해준다.

velog_series_01/dashboard/dashboard/urls.py 파일을 열고 아래와 같이 편집한다.

from django.contrib import admin
from django.urls import include, path
from rest_framework.routers import DefaultRouter
from dashboard_core.views import PostViewSet

router = DefaultRouter()
router.register(r"posts", PostViewSet, basename="post_status")

urlpatterns = [
    path('', include(router.urls)),
    path('admin/', admin.site.urls),
    path('api-auth/', include('rest_framework.urls')),
    path('rest-auth', include('rest_auth.urls')),
    path('rest-auth/registration', include('rest_auth.registration.urls')),
]

이제 회원가입에 관련된 앱들도 설치했고 자동으로 해당하는 모델이 추가되었기 때문에, DB와 sync를 맞추기 위해 Migrate 가 필요하다.

아래 커맨드를 실행하자.

python manage.py migrate

무사히 성공한다!

마지막으로 settings.py 파일 맨 아래에 회원 인증 방식에 대한 설정과, site 번호를 넣어준다.

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ]
}

SITE_ID = 1

이제 서버를 실행하고, http://127.0.0.1:8000/ 에 접속해보자.

오른쪽 상단에 Login 버튼에 생겼다.
버튼을 눌러, 관리자 계정으로 로그인 해보자.

로그인 한뒤에, Post URL로 이동해보자.

아래를 보면 회원 로그인이 된 상태여서, Post Model에 새로운 게시글을 작성할 수 있게 되었다.

다음 포스팅에서는, 유저를 등록할 수 있는 화면을 간단히 구성해보고 이를 Post Model 등록 권한과 연계하면서 CRUD API를 만들어 보도록 하자.

Thank you!

profile
django developer

0개의 댓글