Notice
Recent Posts
Recent Comments
«   2025/04   »
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
Tags
more
Archives
Today
Total
관리 메뉴

INSPECT

Python Django-3 (Template) 본문

Python

Python Django-3 (Template)

INSPECT 2017. 1. 2. 23:02

---template---

 

장고를 사용할 때 중요한 능력 중의 하나는 템플릿이다. 템플릿은 우리의 웹페이지를 smart하게 만들어준다. 또한 코딩하기에도 편하게 해준다.



기존의 뷰를 보았을 때 지금 이 상태에서 만약 html코드가 더 길게 작성된다면 보기에 나쁘고 다른 사람이 볼 때도 보기 어렵다.

 

setting.pybase_dir은 우리의 프로젝트의 기본 디렉토리를 나타낸다.



DATABASES에 있는 주소 os.path.join(BASE_DIR, ‘db.sqlite3’)를 그대로 복사한다.

위에 TEMPLATESDIRS에 그대로 붙여넣는다. 뒤에 db.sqlite3templates라고만 바꿔준다. templates라는 디렉토리에서 템블릿을 찾게 해주는 것이다.

templates 폴더를 만들고 안에 index.html을 만든다.


안에 이런 식으로 내용을 작성한다.


뷰의 list부분에 return render(request, “index.html”,{}) 이런 식으로 작성하고 페이지를 reload해보면 template is working문구가 나온다. “index.html”은 방금 작성한 templates“index.html”이다.

기존의 이 url을 사용하기 편하게 바꿔준다.


이런식으로 바꿔주고 reload해보면

만든 템플릿이 잘 나온다.

 

템플릿으로 좀 더 멋있게 할 수 있다.


{}이렇게 빈칸으로 두었던 것에 변화를 줘서 더 멋진 일을 할 수 있다.

이런식으로 contexttitle 변수를 사용해 같은 index.html을 사용하여 detaillist에 각각 다른 값을 주었다.


index.htmltitle이라는 변수를 {{}}로 두 개의 중괄호로 묶는다.



결과는 예상했던 대로 위와 같이 멋지게 나온다.

좀 더 스마트하게 만들어줄 수 있다.

 


위처럼 사용자가 인증되었을 때와 아닐 때 다른 문구로 화면을 출력하게 할 수 있다.

 




로그인을 하지 않았을 때의 화면이다.




로그인을 한 뒤의 화면은 위와 같이 달라진다.

Comments