Django views.py

Happy_JG·2023년 6월 21일
0

Django

목록 보기
6/32

MVT패턴

django의 보여주는 대부분은 VIEW에서 처리하게 된다. 그리고 VIEW는 적극적으로 HTML을 활용한다.

View는 MTV패턴에서 가장 핵심이 되는 부분으로, 사용자로부터 요청을 받고 받은 요청에 의해 모델에 가져온 데이터를 가공하고 Template에 보내주어 'index.html'과 같은 html문서를 통해 사용자에게 직접 보여준다.

전 포스트에서는 views.py를 간단하게만 보여주었다.


views.py에 데이터 입력하기.

context라는 데이터를 담는 통에 데이터를 입력하고 render함수에서 context를 통해 index.html에 전달하여 사용자에게 보여줄 수 있다.

context 딕셔너리에 이름과 나이 데이터를 입력하였다.
이미지 파일도 똑같다.

context = {'img' : 파일 상대경로.jpg}  #views.py
<img src = "{{ img }}">   #index.html

index.html에서는 다음과 같이 활용된다.

다시 서버를 실행해서 확인해보자.

name 데이터가 잘 출력된 모습을 볼 수 있다!


복습! welcome 페이지 생성

welcome 페이지 생성을 해보겠다.

SERVER/newproject/urls.py

path('welcome/<name>/',views.welcome) 

<name>을 주목하자

SERVER/articles/views.py

def welcome(request,name):
	context = {
    		'name' : name
	}
    return render(request,'welcome.html',context)

매개변수 위치에 name을 입력받아 context라는 통에 집어넣고 render함수를 통해 templates에 넘겨주자.

SERVER/articles/templates/welcome.html

이전과 마찬가지로 body사이에 name을 입력했다.

서버 실행 후

http://localhost:8000/welcome/janggoo/

welcome/ 뒤에 janggoo를 입력하여 웹에 띄운 모습이다.


urlpatterns에 index페이지와 마찬가지로 welcome 페이지를 작성하였고 <name>만을 추가하였다.

결론적으로 <name> 요놈이 views.py의 def welcome(request,name) name에 들어가서 context통에 들어간뒤 render함수를 통해 templates까지 연결되어 보내진 것을 확인할 수 있다.

http://localhost:8000/welcome/hello/

hello가 잘 나온 것을 확인할 수 있다!!


Variable routing

  • URL 주소를 변수로 사용하는 것을 의미한다.

  • URL의 일부를 변수로 지정하여 view 함수의 인자로 넘길 수 있다.

  • 즉, 변수 값에 따라 하나의 path()에 여러 페이지를 연결 시킬 수 있다.

    첫 번째로 janggoo, 두 번째로 hello를 변수로 실습해보았다.

profile
hello!

0개의 댓글