본문 바로가기
Research/Django

[django]MDSE_01_웹사이트 간단한 문구 표시

by RIEM 2021. 11. 22.
728x90

개요

이 게시글은 장고 기반의 웹사이트를 구축하는 과정을 기록한 문서입니다. 장고 튜토리얼 ‘점프투파이썬(https://wikidocs.net/71303)’을 참조하여 작성했습니다.

목표

이번 장에서는 웹사이트 장고 프로젝트의 생성하고 웹사이트에 간단한 문구를 표시해보자

 

프로젝트 생성

 

(mysite) C:\Users\yangs\Desktop\django_jump\projects>cd mysite
(mysite) C:\Users\yangs\Desktop\django_jump\projects\mysite>django-admin startproject config .

 

Config .는 현재 디렉렉토리에 프로젝트를 생성하라는 의미다. 일반적으로 ‘django-admin startproject mysite(프로젝트명)’명령어로 프로젝트를 생성하는데, 이 경우 mysite 디렉터리 내 mysite 디렉터리가 하나 더 있고 그 디렉터리 내 프로젝트 파일이 저장되는 이중 구조로 생성되기 때문이다. 불필요한 레이어를 걷어내기 위해 현재 디렉터리에 프로젝트를 생성했다. 


> ../config/settings.py

 
…

LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'

USE_I18N = True

USE_L10N = True

USE_TZ = True

...

 

프로젝트 생성 후 Language_code와 Time-zone을 한국 기준해주었다. 


> 웹 브라우저에서 앱 실행

웹브라우저에서 localhost:8000(127.0.0.1:8000) 주소로 접속하면 성공적으로 장고 프로젝트가 생성된 것을 알 수 있다.


> 앱 생성

장고 프로젝트는 앱들을 포함한다. 현재는 프로젝트만 생성한 상태이니 껍질만 만든 상황이다. 기능을 추가하기 위해선 앱을 생성해주어야 한다. 

\Desktop\team6app>django-admin startapp detection

 

Detection 앱 디렉토리 생성된 것을 확인할 수 있다.


> ../config/urls.py

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

urlpatterns = [
  path('admin/', admin.site.urls),
  path('detection/', views.index)
]

 

localhost:8000/detection 주소로 들어올 경우 views의 index함수를 실행시키라는 url패턴을 추가해주었다. 


> ../detection/views.py

 
from django.http import HttpResponse

def index(request):
  return HttpResponse("안녕하세요. detection page입니다.")

 

실행되는 views 함수를 정의해주었다. 임의로 안내문구를 나타내도록 했다.

 

localhost:8000/detection/ 주소로 가면 위와 같은 문구가 정상적으로 뜨는 것을 확인할 수 있다.

 

URL 분리

위의 config에 detection 앱 관련 url을 추가했다. 하지만 detection 앱의 url 매핑은 추가로 추가될 것인데, 전체 url을 관장하는 config/urls.py 주소에 detection의 url들을 매핑할 경우 url들의 질서가 복잡해진다. 따라서 detection 앱 url들만 따로 분리시켜 모아두는 작업을 진행해보자. 일종의 모듈화한다고 생각하면 된다.

> ../config/urls.py

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

urlpatterns = [
  path('admin/', admin.site.urls),
  path('detection/', include('detection.urls'))
]

 

Include 모듈을 import하여 detection 앱의 urls들을 include 해주자. 특정 주소를 제외한 path들은 include로 매핑을 해주어야 한다. 예를 들어 detection/answer, detection/signup/main 과 같이 detection/으로 시작하는 주소는 모두 detection/urls.py 파일을 참조하게 되었다.


> 파일생성 : ../detection/views.py 

Detection.urls을 참조하도록 하였으니 detection/urls.py파일을 실제로 만들어주자.

 
from django.urls import path

from . import views

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

 

위의 path의 경우 최종 url은 ‘localhost:8000/detection/’과 같은 형태를 가지게 된다. 만약 path(‘signup/create/’...)가 추가될 경우, 최종 url은 ‘localhost:8000/detection/signup/create’가 된다.

 

HTML 화면 띄우기

현재 웹사이트에 들어가면 아래와 같이 단순 문구만 출력되고 있다.

 

728x90

댓글