모델을 생성하고 관리자 페이지에서 확인할 수 있게 이를 등록해주어야 한다. 각 앱의 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 이다.
# 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() 메소드가 호출된다.
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과 구분할 수가 없다고 한다.