[Django/Python] 5. views.py / urls.py

SangHyun-Park·2021년 7월 8일
0

Django

목록 보기
6/12

#필자의 Django 입문부터 첫 웹페이지 배포하기까지, 코드 리뷰를 위한 글입니다

#필자 또한 입문자이며, 두번째 Django 프로젝트를 마친 후, 입문자의 시점으로 코드 리뷰를 하는 것 이며, 코드를 작성하며 이해하고,느낀 부분을 위주로 작성할 예정 입니다

http://127.0.0.1:8000/

현재 위의 주소에 들어가면 장고 welcome 페이지가 뜨는것을 확인할 수 있다.

우리가 웹을 개발하는 주 목적은 클라이언트에게 우리가 의도한 서비스를 웹페이지를 통해 제공할 수 있어야하며 장고에서 그 기본이 되는 것이

MTV (Model,Template,View) + url mapping 이다

MTV 에 대한 자세한 설명은 (시작부터 배포까지 1) 을 참고하면된다.

Template rendering

내가 작성한 template을 웹페이지에 rendering 하려면

크게 다음과 같은 순서로 이루어진다

urls.py 에서 url 패턴에따른 view 호출

view 에서는 모델 객체를 이용하여 적절한 template 에 template 변수
로 넘겨줌

template 에서는 템플릿 코드 + (보통 html) 을 합쳐서 저장

urls.py

가장 기본 url 패턴은 config 디렉토리 하위 urls.py 파일 부터 시작한다

위와같이 include 를 통해 기본 url 패턴을 study 폴더 아래에있는 urls.py 에서 시작하도록 변경해준다(이번 프로젝트는 study 폴더 내에서 view, model 작성을 마칠것이기 때문)

위에서 include 는 앞에 해당하는 url 패턴 '' (아무것도 없음을 나타내고 로컬환경에서 웹페이지 초기 주소인 http://127.0.0.1:8000/ 를 나타냄) 이후에 다른 url 패턴들을 잇는 역할을 해준다

여기서 다른 url 패턴들은 study 폴더 하위에 urls.py(새로 생성해야함) 에 선언될 예정이며, 예시는 아래와 같다

path 의 구조는 간단하게 (url 패턴, view 이름) 으로 구성되어있으며 url 패턴에따른 view 를 호출하는 역할을 한다

views.py

모든 view 들은 views.py 파일 안에서 작성되며 이번에 만들어볼 main_view 는 아래와같다

장고에서 제공하는 클래스형 뷰도 유용하지만 정말 필요한 경우가 아니면 이번 프로젝트에서는 사용하지않을 예정이다 (지금은 궁금하면 구글검색을 하길 바란다)

위에서 작성한 view는 함수형 뷰 로 view 가 def 로 선언된 함수이기 때문에 함수형 뷰 라고 한다

view 이름은 main_view 라고 지었고 함수 파라미터로는 request 가 들어갑니다(필수)
이 request 는 url 에서 날라오는 request 정보로써 함수형 뷰를 작성하는데에 아주 다양하게 이용됩니다.

함수형 뷰는 리턴값으로 HttpResponse 을 넘겨주어야하는데,
render 메소드같은 경우에는 request 정보를 template(위의 경우에서는 main.html) 에 담아 HttpResponse 로 넘겨주는 메소드 입니다

template 는 따로 설정을 안할 시 해당 뷰가 있는 어플리케이션(위의 경우에는 study) 하위 templates 폴더 아래에있는 파일에서 찾아나갑니다

main.html 이라고 입력했기 때문에 실제 장고가 찾는 경로는 study 디렉토리-> templates 디렉토리-> main.html 이므로, 적절하게 templates 디렉토리와 main.html 파일을 만들어 줍시다

다 작성한 후

http://127.0.0.1:8000/main/ 로 들어가게 되면

다음과 같은 화면이 잘 출력되는것을 확인할 수 있다
(위의 텍스트는 html 파일에서 작성을 해주어야한다)

다음글 부터는 기본적인 셋팅과, CRUD 기능을 하나씩 구현해보도록 하겠습니다

profile
https://ppaksang.tistory.com/ 옮겼습니다 !!

0개의 댓글