Django

views.py & urls.py

views.py & urls.py

  • 우리는 지금까지 홈 화면을 구성하기 위해 html 문서를 만들었습니다.
  • index.html 문서도 만들었으니 이제 실행하면 html 문서가 보일까요?
    안타깝게도 보이지 않습니다. 
    이를 해결하기 위해 views.py와 urls.py 파일을 수정하는 과정을 거쳐야 합니다.
     

 

 

views.py

[blogapp]에서 [views.py] 파일을 엽니다.

 

 

  • [views.py]는 다음과 같이 생겼습니다.
    [views.py]에서는 보통 파이썬 문법을 활용하여 여러 함수들을 생성하게 되며, 이 함수들을 이용하여 자신이 원하는 형태로 데이터를 처리한 뒤, 어떠한 html로 데이터를 보내게 됩니다.
     
  • 첫 줄에 보이는 render 함수 또한 데이터 값을 받아온 뒤 html로 데이터를 보내기 위한 함수입니다.

 

 

  • 우리는 [index.html] 문서를 띄울 것이므로, 이와 관련된 함수를 만들 것입니다.
    통상적으로 html 문서의 이름과 똑같이 함수의 이름을 지정합니다.
    따라서 함수의 이름은 index가 될 것입니다.
  • 이와 같이 함수를 적도록 합니다.
def index(request):
    return render(request, 'index.html')

 

  • request 인자는 어떠한 요청을 처리하기 위해 사용됩니다.
    지금은 아무런 처리를 하지 않았지만, 결과 값을 render 함수를 통해 요청을 index.html 문서로 리턴해줍니다.

 

 

 

 

urls.py

  • 지금까지 [views.py]에서 [index.html]로 이동할 수 있도록 index 함수를 만들었습니다.
  • 이 index 함수를 [urls.py]에서 연결시켜주도록 합시다.

 

[firstProject] - [urls.py]를 클릭합니다.

 

  • [urls.py]의 모습입니다.
  • 19번 라인에 보이는 [urlpatterns] 안에 우리가 원하는 작업을 할 것입니다.
  • 그 전에 16번 라인에 보이는 [+] 버튼을 눌러줍니다.

 

 

  • 우리는 앞에서 작성한 index 함수를 사용할 것입니다.
  • 하지만, 지금 [urls.py] 파일의 위치와 index 함수가 있는 위치가 다릅니다.
  • 따라서 index 함수는 [blogapp] - [views] 안에 있으므로 다음과 같이 import 해줍니다.
import blogapp.views

 

  • urlpatterns 안에 다음과 같이 입력해줍니다.
    마지막에 콤마(,)는 반드시 입력해줍니다.
path('', blogapp.views.index, name='index'),
  • 이제부터 path 함수를 이해해보도록 하겠습니다.
  • 첫번째 인자 ''의 의미는 우리가 만든 블로그 홈페이지의 주소를 입력할 때 아무것도 입력하지 않았다는 의미입니다.
    원래 써있던 'admin/'을 보면 우리가 만든 블로그 홈페이지의 주소가 예를 들어 "http://www.myblog.com"이라 하면 "http://www.myblog.com/admin"으로 접속한다는 의미입니다.
    따라서 ''는 아무것도 입력하지 않았으므로 단지 "http://www.myblog.com"으로 접속하면 우리가 작성한 index.html 문서가 보입니다.
  • 두번째 인자 blogapp.views.index는 우리가 만든 index 함수를 적용시킨다는 의미입니다.
  • 세번째 인자 name='index'는 위에 초록색으로 글씨 써있는 부분에 보면, 함수를 적용시키고 이름을 명명하게 되면 나중에 html 파일에서 이 값으로 url 값을 불러올 수가 있습니다.

 

 

 

 

실행

  • 지금까지 [views.py]와 [urls.py] 파일을 수정하였습니다.
  • 제대로 작동이 되는지 확인을 해보겠습니다.
오른쪽 상단의 벌레 모양을 눌러줍니다.

 

[http://127.0.0.1:8000/]을 눌러줍니다.

 

  • 다음과 같이 인터넷에서 작동한다면 성공입니다.

 

 

 

댓글

댓글 본문
  1. 초보자
    디버깅을 돌리면 'xxx' is not allowed to run in parallel Would you like to stop the running one?
    이라는 액박이 뜹니다.
버전 관리
KNUT X LIKE LION
현재 버전
선택 버전
graphittie 자세히 보기