본문 바로가기

Web Programming/Django

장고 보다 간편화하기(Base, url 정리)

1. HTML 중복 코드 방지


프로젝트의 폴더에서 templates 폴더를 만들고 그 곳에 base.html 파일을 작성해준다

반복되서 사용될 html 코드 내용을 작성해주고(navbar, footer 등)

본문 내용이 들어갈 부분을 {% block content%} {% endblock %} 으로 묶어준다


그리고 원래의 template 파일에 가서 본문에 해당하는 내용만 {% block content%} {% endblock %} 으로 감싸고

html의 시작부분에 {% extends 'base.html' %}을 작성해준다


그리고 base.html의 위치를 알려주기 위해

settings.py에 다음의 코드를 추가합니다


1
2
3
4
5
6
7
8
# settings.py
TEMPLATES= [
    {
    ...
    'DIRS' :['project/templates'],
    ...
    }
]
cs


2. URL 정리


url을 해당 app 별로 관리하기 위해 각각의 app 내에 urls.py 파일을 만들어 준다

그리고 각 app에 해당하는 부분만 다음과 같이 옮긴다


1
2
3
4
5
6
7
8
9
10
project/app/urls.py
 
from django.urls import path
from . import views
 
urlpatterns = [
    path('<int:blog_id>/', views.detail, name='detail'),
    path('new/', views.new, name='new'),
    path('create/', views.create, name='create'),
]
cs


그리고 원래의 url은 다음과 같이 수정해준다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
project/urls.py
 
from django.contrib import admin
from django.urls import path, include
import blog.views
import portfolio.views
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', blog.views.home, name='home'),
 
    path('blog/', include('blog.urls')),
 
    path('portfolio/', portfolio.views.portfolio, name='portfolio'),
]
cs