템플릿 상속
1. 프로젝트 폴더 안에 templates폴더를 만들고 그 안에 base.html 만들기
중복되는 내용도 채워넣기
2. settings.py에 base.html의 위치를 알려주기
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['프로젝트 이름/templates'],
'APP_DIRS': True,
...
3. base.html에 내용이 들어갈 부분을 알려주기
{%block contents%}
{%endblock%}
#block contents에서 'contents'는 바꿔쓸 수 있다. (title, sidebar 등등..)
4. 내용에 해당하는 html로 가서
{%extends 'base.html%} #얘는 모든 태그들에 대해 우선순위가 가장 높다. 따라서 가장 위에 써주자.
{%block contents%}
...(내용)
{%endblock%}
URL의 계층적관리
1. 앱 폴더 안에 urls.py를 만들어주고 , admin과 path, views를 import
#app폴더안의 urls.py
from django.contrib import admin
from django.urls import path
from . import views
2. 계층적으로 관리할 url들을 ctrl+x, ctrl+v하고 간결하게
#프로젝트 폴더 안에 있는 urls.py에 있던 얘네를
urlpatterns = [
...
path('blog/<int:blog_id>/', blogapp.views.detail, name="detail"),
path('blog/new/', blogapp.views.new, name="new"),
path('blog/create/', blogapp.views.create, name="creage"),
...
]
#앱 안의 urls.py
urlpatterns = [
...
path('<int:blog_id>/', views.detail, name="detail"),
path('new/', views.new, name="new"),
path('create/', views.create, name="creage"),
...
]
3. 프로젝트 폴더 안 urls.py에 blogapp.urls를 include
from django.contrib import admin
from django.urls import path, include #include를 꼭 import 해줘야한다!
...
urlpatterns = [
...
path('blog/', include('blogapp.urls')),
...
]
콤마(,) 빼먹지 않게 조심!
'Django > Django note' 카테고리의 다른 글
[Django note] #5 내가 보려고 만드는 장고 노트(썸네일 구현) (0) | 2020.07.22 |
---|---|
[Django note] #4 내가 보려고 만드는 장고 노트(소셜 로그인 구현) (0) | 2020.07.20 |
[Django note] #3 내가 보려고 만드는 장고 노트 - update 함수, 수정 기능 (전 내용이 보이게 하기) (0) | 2020.07.17 |
[Django note] #1 내가 보려고 만드는 장고 노트(static과 media) (0) | 2020.07.14 |