[Django] Urls  , View 동작원리  , Django Template
Python/Django

[Django] Urls , View 동작원리 , Django Template

@@장고에서 view를 보여주는 방법에대한 정리 //잘못된정보 피드백 환영

 

장고 config - urls.py

url = 'admin'/  , view = admin.site.urls 를 의미한다.

 

장고에서 view란 ?

1. url 요청에 바로 응답하는방법 !

2. view는 function 이다 !

3. view는 HttpResponse를 생성한다 //그럼 응답해줘야겠지?

-장고에서는 Request를 제공하나 Response는 제공하지않는다.

-장고는 받은 Request를 Python object로 변환시켜준다 , 그리고 인자로 제공

 

또한 장고 어플리케이션들은 기본으로 urls.py가 없으므로 만들어줘야됨!

 

views.py

views.py에서 보듯이 request를 첫번째 인자로 받고 , HttpResponse를 반환한다. (현재 hi를 썻기떄문에 hi가 표시됨)

 

장고 template

실제로 사용할때는 장고 template를 사용한다.

//template는 그냥 간단히 html이라고 생각하면됨 차이점은 파이썬이 컴파일해준다 정도?

 

view.py

views.py를 수정후

templates 디렉토리 생성후 그안에 all_rooms.html을 만들어주고 , hi를 적어준다

 

setting.py

이제 장고에게 templates의 위치를 알려주자

html 파일 생성후 config - setting.py 에 TEMPLATES 부분에서  저렇게 작성해주자 , templates는 디렉토리 이름임 그리고 새로고침하면 html이 적용된걸 볼수있다 !

 

Template Context

template에서 장점? 특징? 은 context이다 , context는 template에 변수를 보낼수있다 .

render 함수
views.py

views.py 수정후 template에 변수들을 적용시켜보자 !

all_rooms.html 에서


<h4>현재시간:{{now}}</h4>

<h5>배고프다 {{hungry}}</h5>

변수가 잘적용된다!

두번째 특징은 template에 직접 python 로직을 작성할 수 있다는건데

 이런식으로 {% %}  를사용한다!  이경우 hungry 변수를 Ture 로 해놓았기때문에 배고프다가 출력된다 !

결론 == 변수만 사용하고싶다면 {{ }}  , 로직을 사용하려면 {% %}