본문 바로가기
Personal Project

django로 diary 만들기 [accounts(회원) 세션 구현] -1

by applepick 2020. 8. 7.
반응형

여자친구랑 다이어리를 써보고싶어서 직접 만들려고합니다.

대략 두달 정도 시간을 들여 만들 프로젝트는 바로 다이어리서비스입니다.

가상 환경부터 실행해야겠죠?

안에 프로젝트에 들어가봅시다. 

django-admin startproject project(자신이 만들 프로젝트이름)

shell창에 입력하면 프로젝트가 생성됩니다. 저는 project라고 지었습니다. 

프로젝트 안에서 앱을 만들어봅시다.

py manage.py startapp accounts(자신이만들앱이름)

로그인 기능을 구현하기위해 accounts라고 지었습니다. 앱을 만들었으니 메인프로젝트안에 settings.py안에 선언해 주어야겠죠?

INSTALLED_APPS = [
    'mydiary.apps.MydiaryConfig',
    'accounts.apps.AccountsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

이렇게 앱생성했다고 선언해주어야합니다.

그리고 url.py에 선언해줘야하는데 저는 accounts앱안에 url.py라는 파일을 만들어줘 관리하기 편하게 구현했습니다.

from django.urls import path
from django.contrib.auth import views as auth_views
from . import views

urlpatterns = [
    path('signup/',views.signup, name='signup'),
    path('login/',views.login, name='login'),
    path('logout/',views.logout_request, name='logout'),
]

accounts/url.py에 이렇게 선언해주었습니다. 저는 로그인, 로그아웃, 회원가입 이렇게 3가지 기능이필요하기때문에 넣어주었습니다. 저는 django가 제공하는 내부 유저모델을 사용할 예정입니다. (아주편합니다)

메인 프로젝트안에있는 urls.py에 들어가 accounts앱에있는 urls.py를 선언해줘야겠죠?

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
import mydiary.views
import accounts.views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',mydiary.views.home,name='home'), #홈화면
    path('accounts/',include('accounts.urls')),
    path('mydiary/',include('mydiary.urls')),
]

 

django에서 제공하는 django.urls에서 include를 이용하면 유용하게 url를 관리해줄수있습니다.

이제 일단 가입을 받을 폼이 필요하겠죠? accounts에 내부에 templates이라는 파일을 만들어줍니다.

이렇게 저는 로그인, 로그아웃, 회원가입 ,회원가입할때 생기는 오류를 넘겨주는 에러페이지  이렇게 4개를 구현했습니다. 아까 urls.pty에서 적용해줬으니 이제 views.py에서도 적용해줘야겠죠?

이것은 다음시간에 해보겠습니다.

반응형

댓글