본문 바로가기
개발Study/web

Django url? view? HTTP?

by happy90 2020. 10. 18.
SMALL

얼마 하지도 않았는데 오랜만에 보니까 헷갈려서 다시 복습해보는 url 연결하기.

 

hello_django project의 mydjango app을 생성했고, mydjango app의 views.py에는 index함수를 정의했다.

 

view는 웹브라우저에서 사용자에게 무언가를 보여주기 위한 기능이며, 이 index 함수는 무언가를 보여주는 역할을 한다.

hello jango 어쩌고저쩌고를 적어놨었다.

 

이 view의 index를 보여주기 위해서는 url을 연결해주어야 한다.

mydjango app의 urls.py에 views를 import해주고 views.py의 index함수를 적어준다.

mydjango app의 상위에 있는 우리 hello_django 프로젝트의 urls.py에는 mydjango app의 url을 연결하도록 적어준다.

 

이렇게하고 django runserver를 하면, default url 127.0.0.1:8000/ 에서 mydjango app을 통해 index 함수의 내용이 표시되는걸 볼 수 있다. url : http://127.0.0.1:8000/mydjango

 

근데 url 연결되어있다고 views의 등록된 모든 함수들이 표시가 되는것인가? 싶어서

왜냐하면 호출을 따로 안했으니까.

몇개 더 만들어보기로 했다.

 

views.py :

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def index(request) :
    return HttpResponse("Hello, world. You're at the polls index.!!!!")
    
def index2(request) :
    return HttpResponse("Hello, world. You're at the polls index.!!!! 2")
    
def index3(request) :
    return HttpResponse("Hello, world. You're at the polls index.!!!! 3")

 

mydjango의 urls.py :

from django.urls import path
from . import views
urlpatterns = [
    path('', views.index, name='index'),
    path('', views.index2, name='index2'),
    path('', views.index3, name='index3'),
]

 

이렇게 했더니 출력은 제일 윗줄에 있는 index하나만 나왔다.

index와 index2를 주석처리하면 index3이 나왔다.

 

HttpResponse 함수는 http의 request에 대한 응답이다.

내 웹브라우저가 http://127.0.0.1:8000/mydjango page를 request했고,

이 때 mydjango가 응답으로 "Hello, world. You're at the polls index.!!!!"를 줄 수 있도록 함수를 구현한 것이다.

 

내가 아직도 이해가 안가는 것은 urlpatterns 리스트에 view.index를 추가한 것인데, 

아휴 독학하니까 이걸 뭘봐야되는지를 모르겠어.

웹브라우저의 요청이 왔을 때 django가 해당 app의 url을 호출하도록 url을 구성했으니 이해했고,

mydjango app에서는 views의 index를 어떤 기준으로 호출해가는 것인가.

 

의문은 일단 두고 다음 진행을 해보자. 하면서 풀릴 수도 있으니??

 

LIST

'개발Study > web' 카테고리의 다른 글

Django 관리자  (0) 2020.10.25
Python shell in django  (0) 2020.10.18
MVC pattern  (0) 2020.09.20
database in django  (0) 2020.09.13
django project  (0) 2020.09.09

댓글