티스토리 뷰
Django Template Language
종속 html만들기
이번엔 무엇을 배울까? 아래의 내용을 보자.
<title>Document</title> 부분은 위쪽 창에 뜨는 부분이다.(HTML 문법)
만약 우리가 title을 바꾼다면 지금까지 만든 html 파일을 다 들어가서 하나씩 바꿔야 한다.
이러한 번거로움을 해결하기 위해서 상속하는 법을 알아보자.
첫 번째, templates/base.html을 만든다.
위치는 생성한 프로젝트 안에서 templates 폴더를 하나 만든다. 위의 트리를 보면 articles라는 app도 생성해놨다.
+) 혹시나 서버 실행했을 때 한글로 번역할 거냐고 계속 뜬다면 <html lang="en">을 <html lang="ko">로 바꾸자.
{% block body %}
{% endbody %}
사이 부분에 다른 html 파일들이 추가된다고 생각하면 된다.
두 번째, html을 만들자.
html은 app안에 templates를 만들고, 다시 그안에 articles(app이름)라는 폴더를 하나더 만들어 준다.(app 이름의 폴더를 만들어 주는 이유는 중복되는 html 파일이 있으면 error가 뜨기 때문이다.)
detail.html을 보자.
- 첫줄의 extends는 확장을 한다는 코드로 이해하면 된다.(반드시 적어주자)
- body부분을 제외하고 지우자. 그리고 body 윗부분에 {% block body %}를 넣으면 되고
- body 아래 부분을 {% endblock %}를 적어준다.
세번째, CSS 적용하기
bootstrap적용과 css적용도 아래와 같이 당연히 할 수 있다.
- 간단히 <head>부분 아래쪽에 {% block css %}와 {% endblock %}를 추가하면 된다.
네번째, settings.py 설정
settings.py에서 TEMPLATES를 찾자. 그리고 base.html이 있는 위치를 DIRS에 적어준다.
- BASE_DIR : 최상위 ROOT 디렉토리를 의미한다
- 2번째 이하 인자로는 ROOT 디렉토리 이하 기본 템플릿이 위치한 경로를 입력
- 만약 경로를 추가하고 싶다면, 'DIRS': [os.path.join(BASE_DIR, 'articles', 'templates')], 이런식으로 추가가 가능하다
출력화면
이런식으로 출력 했다면 성공!
디테일한 설명은 github 코드를 참고하자.
홈페이지에서 사이트를 이동할 때 메뉴바(navbar)같은 경우는 유지되면서 내용만 바뀐다. 즉, 바뀌지 않는 부분을 base.html로 넣고 나머지 부분을 작업하면 된다.
사실 이정도 오면 아주 기초 부분은 구현이 가능하다고 본다.
아니면 장고로 CRUD만 만들고 싶다면, 블로그에서 꼭 CRUD라고 검색을 해보자.
만약 로그인 회원가입부분을 구현하고 싶다면, 아래부분 부터 순차적으로 보자.
만약 react나 Vue와 같은 것들과 django를 연동하는 것이라면, 아래의 부분부터 순차적으로 보자.
'Web > Django' 카테고리의 다른 글
[Django]urls 분리 (0) | 2020.06.14 |
---|---|
[Django]settings.py (0) | 2020.06.13 |
6-1. [DTL] django template language (0) | 2020.05.05 |
5-2. django_variable routing 기초(int) (0) | 2020.05.03 |
5-1. django_variable routing 기초(str) (0) | 2020.05.01 |
- Total
- Today
- Yesterday
- read_csv
- error:0308010C:digital envelope routines::unsupported
- 자료구조
- useState
- react autoFocus
- Python
- Express
- TensorFlow
- DFS
- 자연어처리
- react
- login
- NextJS
- Queue
- django
- next.config.js
- logout
- pandas
- BFS
- Vue
- nextjs autoFocus
- JavaScript
- vuejs
- 클라우데라
- mongoDB
- useHistory 안됨
- nodejs
- Deque
- typescript
- UserCreationForm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |