본문 바로가기

웹/Django

[Django] Hello, Django! / 2021.08.24

* 참고 자료 : 코드잇 Django 강의


앞에서 restaurant이라는 프로젝트를 생성했고 foods라는 앱을 생성했다.
이제, 간단한 웹사이트를 만들어보자.

유저가 웹브라우저에 주소 즉 URL을 입력하면 장고는 urls.py에 적혀있는 것을 보고 어떤 처리를 할지 결정한다.
일단 VScode를 실행하고 프로젝트 폴더안의 urls.py에 들어가자.


여기에 있는 urlpatterns가 바로 url을 어떻게 처리할지에 대해 써놓는 곳이다.
우리가 따로 추가하지 않아도 프로젝트를 생성하면 자동으로 path('admin/', admin.site.urls)라고 쓰여있다.
이 코드의 뜻은 우리의 사이트주소 마지막에 admin/을 추가하면 admin.site.urls로 이동하라는 뜻이다.

개발서버를 실행하고 주소뒤에 admin/을 추가하면,


만든 적은 없지만 장고가 제공해주는 관리자 페이지로 이동이 된다.

1. Hello, Django! 웹페이지 만들기
장고가 기본으로 제공해주는 URL 말고 새로운 URL을 만들어 보자.

(1) project 폴더 안 urls.py
urlpatterns에 새로운 url을 추가하자.

path('만든앱/', include('foods.urls'))


include 함수를 쓰기 위해서는 django.urls로부터 include 함수를 가져와야 한다.
따라서 from django.urls import path 뒤에 include를 추가하겠다.

project파일 안의 urls.py


만약 주소에 foods/가 있으면 foods앱 안의 urls.py를 살펴보라는 뜻이다.
그런데, 현재 foods앱에는 urls.py가 없다. urls.py를 만들어주자.

(2) foods앱 안의 urls.py


새 파일을 클릭한 후 urls.py라고 작성하자. 그러면 urls.py파일이 생성된다.
그리고 urls.py안에 다음과 같이 작성해보자.

from django.contrib import admin
from django.urls import path

urlpatterns = [
path('index/', views.index)
]


이 코드는 foods앱안의 views.py파일의 index함수를 가져오라는 뜻이다.

여기서 views 모듈을 쓰기 위해서는 먼저 불러와야 한다.
다음 코드를 추가시키자.

from . import views


여기서 . 은 같은 디렉터리를 의미한다. 따라서 현재 foods디렉터리 안의 views.py를 가져오라는 의미이다.

foods 앱 안의 urls.py


이제 views파일에 index 함수를 생성하자.

(3) views.py 에 index함수 생성하기.
웹사이트에 Hello, Django!라는 문자열을 출력하기 위한 index함수

def index(request):
return HttpResponse("<h2>Hello, Django!</h2>")


HttpResponse를 리턴하기 위해 상단에 다음과 같은 코드를 적어주자.

from django.http import HttpResponse

 

foods앱안의 views.py&nbsp;


여기까지 코드 작성을 마치고 서버를 실행한 후 주소 마지막에 foods/index/를 적어주면,

우리가 원했던 웹사이트가 만들어진 것을 확인할 수 있다.