Django

Django URL 생성하기

nyanguk 2021. 1. 17. 01:32

장고 프로젝트안에 새로운 어플리케이션을 추가 했다면 그에 대한 URL을 지정해야한다. 

URL은 각 웹페이지 마다 고유한 값을 가져야 함을 상기시키자.

 

우리가 어떤 웹페이지를 접속하고자 할때 그에 해당하는 웹페이지 주소를 입력으로 넣어주면 몇초의 시간 후 해당 페이지가 화면에 보이게 된다. 

 

  • 추가된 어플리케이션의  URL을 할당시켜야한다.
  • 어플리케이션의 URL에 접속했을때 어떤 행동을 취해야하는지 명시해야한다.
  • 어플리케이션의 URL에 접속했을때 어떤 화면을 보여줘야할지 설정해야한다.

해당 과정들을 천천히 수행한다.

 

URL  할당

blog라는 어플리케이션을 보여줄 하나의 페이지의 URL 을 http://127.0.0.1:8000 로 설정하기로 한다.

내가 생성한 장고 프로젝트 mysite 안의 파일중 urls.py을 열어보자 

from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]

파이썬 문법에 따라 위와 같이 코드가 적혀있음을 확인 할 수있다. (장고걸스 튜토리얼 에서는 조금 다르게 나온다.)

그 다음 #include를 사용하기 위해 첫줄에 url 뒤에 include 를 추가하고 내가 지정한 url의 뒷부분을 적는다.ㅇ

 

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'', include('blog.urls'))
]

 

추가한 코드는 http://127.0.0.1:8000 url에 접속했을때  urls.py로 모든 요청을 보내라는 것을 의미한다.

 

 

어플리케이션의 urls 생성하기



url에 접속했을 때 urls.py 로 모든 접속 요청을 보내라고 위에서 작성했다. 그렇다면 이제 blog.urls 를 생성해야한다.

 blog 어플리케이션의 디렉토리에 들어가서 새파일 urls.py을 만든 후 아래내용을 추가한다.

 

from django.urls import path
from . import views
urlpatterns = [
    path(r'', views.post_list, name='post_list'),
]

이는 url은 그대로 사용하되 views.py 안의 post_list 라는 이름의 함수를 실행 시키라는 의미이다.

어플리케이션의 얼굴(front-end)만들기

 

그렇다면 views.py의 post_list는 뭘까? url로 접속하면 뜨는 화면을 이야기한다. 즉, 접속 요청이 되었을때 post_list 을 실행하면 우리는 하나의 페이지를 보게되는데 이 부분이 바로 front-end 구성 이다.

front-end를 제대로 구성하기 전에 테스트로 아래와 같이 작성해보자

 

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def post_list(request):
    return HttpResponse("아직 구현하지 못했어! 다음 튜토리얼에서 보자!")

 

그리고 나서 터미널 창에 들어가 runserver 를 실행하자

 

python manage.py runserver

 

그러면 다음과 같은 페이지가 뜨게 된다.