Web Programming/Django
장고 보다 간편화하기(Base, url 정리)
bale.yoon
2019. 2. 2. 17:29
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 |