[Django] 게시판 만들기 (3) - admin 추가, 회원가입 페이지 연결

마이구미·2021년 12월 6일
0

Django

목록 보기
3/4
post-thumbnail

admin에 추가

모델을 생성하고 관리자 페이지에서 확인할 수 있게 이를 등록해주어야 한다. 각 앱의 admin.py에서 admin에 추가해준다.

# user/admin.py

from django.contrib import admin

from .models import User

admin.site.register(User)

--------------------------------

# blog/admin.py

from django.contrib import admin

from .models import Post

admin.site.register(Post)

이후 /admin으로 접속하면 두 앱들을 확인할 수 있다.

회원가입 페이지 연결

회원 가입 페이지를 만들기 위해서는 손 볼 것들이 있다. 먼저 urls.py 이다.

urls.py

# board/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('user/', include('user.urls')),
    path('admin/', admin.site.urls),
]

admin 뿐만 아니라 user와 관련된 페이지를 관리하기 위해 urls에 user를 추가하였다. 이때 include()를 사용하여 url에서 일치하는 포인트를 ㅏㅈ아 나머지 문자열을 포함된 URLconf로 보낸다. 이 경우 ~:8000/user/~~ 로 된 url은 'user/'에 걸리게 되고 나머지 부분은 user/urls.py로 가서 찾아보게 된다. 그래서 user/urls.py에도 위와 같은 처리가 필요하다.

# user/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('register', views.register, name='register'),
]

user/register로 들어오게 되면 views.py의 register() 메소드가 호출된다.

views.py

user/urls.py에서 호출되는 메소드들이 여기에 있다. 현재는 /user/register에 접속하면 임시로 만들어둔 register.html이 보여지게 된다.

# user/views.py

from django.shortcuts import render

def register(request):
    return render(request, 'user/register.html')

view 내에 클라이언트에게 보여지는 페이지가 있다면 이후 디자인을 수정할 때 view의 코드도 수정해야 한다. 따라서 view와 디자인 담당하는 부분을 나누는 것이 좋다. 이를 위해서 template을 사용한다. templates 디렉토리는 앱 아래에 만들어주면 되는데 이 안에 해당 앱의 이름으로 된 디렉토리를 하나 더 만들고 html을 관리해주어야 한다. templates 디렉토리에 바로 html파일들을 저장할 경우 django는 다른 앱의 template과 구분할 수가 없다고 한다.

profile
마이구미 마시쪙

0개의 댓글