밤하늘공작소
[Django 웹페이지] views.py·urls.py (1) 본문
이제 실제로 우리의 페이지를 만들어보겠습니다. 전에 나왔던 페이지는 django에서 주는 페이지이므로 실제로 우리가 만든 페이지가 아닙니다. 이제 우리가 실제로 파이썬 코드를 써서 웹사이트를 만들어보겠습니다.
우선 파이썬 루트 디렉토리(~/django-test/test_project/)로 간 다음 vscode를 켜줍니다. 그런 다음 test_project 안에 있는 urls.py로 가보겠습니다. 그곳에 가보면 기본적으로 적혀 있는 코드들이 있습니다. (위에 빨간색들은 사용법이므로 무시하셔도 됩니다. 실제로 코드에는 아무 영향을 안 미칩니다.)
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
이 코드를 살펴보면 urlpatterns가 django 프로젝트의 URL를 가지고 있다는 것을 알 수 있습니다. 이 urlpatterns 안에 우리의 url들을 넣으면 되는 것입니다. 그것을 쓰기 전에 구성을 살펴보겠습니다. urlpatterns 안에 있는 path는 두 개의 파라미터(필요시 더 늘어날 수 있음)를 가집니다. 첫 번째 파라미터는 실제로 추가할 url을 가지고, 두 번째 파라미터는 실제로 갈 곳을 가리킵니다. 예를 들어서 admin/으로 표시되어 있다면 실제 URL(naver.com, daum.net 등) 뒤에 naver.com/admin처럼 사용하겠다는 것입니다. (우리의 서버를 켜고 http://127.0.0.1:8000/admin으로 가보면 admin의 로그인 페이지를 볼 수 있습니다.)
이제 우리 URL을 넣어보면, 이렇게 할 수 있습니다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('test/', include('tests.urls')),
]
이렇게 코드를 쓰면 되는데 이런 코드는 실제로 써보는 것을 추천드립니다. 코드를 쓸 때 위에서 include를 import 하는 것을 잊으면 안 됩니다. 이 말은 URL 뒤에 test가 붙는 다면 tests(지난번에 만든 앱) 안에 있는 urls.py를 참조하라는 것입니다.
하지만 tests 폴더 안으로 들어가 보면 urls.py가 없는 것을 볼 수 있습니다. 그러면 만들어주겠습니다.
그리고 이 urls.py에 방금 전에 작성했던 코드에서 필요한 부분만 복사해서 넣어줍니다.
from django.contrib import admin
from django.urls import path
urlpatterns = [
]
이제 ~/tests/ 다음에 올 url을 적어보도록 하겠습니다.
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('home/', views.index),
]
이 코드도 살펴보면 ~/test/home이라는 페이지는 views(views.py) 안에 있는 index라는 함수가 하라는 것을 하라는 말입니다. 그리고 views.py를 사용하기 위해 현재 있는 폴더(.) 안에 있는 views.py(views)를 import 해주었습니다.
이제 웹사이트가 보이게 하려면 이 views.py에 index만 작성해주면 됩니다. views.py에 가서 이 코드를 작성해줍니다.
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("<h2>Test! My First Webpage!</h2>")
이 코드에서는 HttpResponse를 이용해서 실제 html 코드를 작성해서 리턴해주었지만, 나중에는 html 파일 전체를 리턴해줄 것입니다.
이제 우리의 서버를 키고 확인해보겠습니다.
명령어 창에 이 코드를 쳐서 서버를 켜줍니다.
$ python3 manage.py runserver
그런 다음 http://127.0.0.1:8000/test/home/ 로 접속해보면 우리가 작성한 코드가 잘 나오는 것을 볼 수 있습니다.
그러면 웹사이트가 잘 만들어져있는 것을 알 수 있습니다.
이전 글 : [Django 프로젝트] 앱 생성 (2)
'코딩 > Django' 카테고리의 다른 글
Django에서 이메일 보내기 (3) | 2022.08.25 |
---|---|
[Django 웹페이지] Template Rendering (2) (0) | 2022.06.01 |
[Django 프로젝트] 앱 생성 (2) (0) | 2022.05.09 |
[Django 프로젝트] 프로젝트 생성 (1) (0) | 2022.05.05 |
[Django 초기 설정] 가상 환경 생성·적용 및 django 설치 (3) (0) | 2022.04.24 |