Django 2.0 노트- 2. App 생성 및 간단한 View 연결

1. App 생성

  • Django는 한 개의 프로젝트, 다수 앱 형태를 가집니다.
  • 앱을 생성해봅니다.
  • blog는 앱 명칭입니다. 바로 뒤이어지는 Url function 관련 포스팅에서 사용되어집니다.
$ python manage.py startapp blog
  • 명령어를 실행하고 나면 각각의 앱명으로 되어있는 디렉토리와 파일이 추가되어 있음을 확인할 수 있습니다.
  • 각각의 파일의 역할은 다음과 같습니다.

2-1

2. Setting 파일에 등록

  • App을 생성하고나면, 사용하기 위해서는 settings.py 에 앱을 등록해야합니다.
  • 'blog', 이렇게 마지막이지만 콤마를 붙이는 것이 권장됩니다. 에러 발생원인을 줄여줍니다.
... 생략
INSTALLED_APPS = [
    ... 생략
    'blog',   # 추가된 부분
]
... 생략

3. URL Routing 정보 추가

  • 프로젝트명/urls.py 경로에 아래와 같이 정보를 추가합니다.
    • 프로젝트명/urls.py 파일 : 프로젝트명/settings.pyROOT_URLCONF 설정항목이 있는데 django는 이 값을 통해 URL 신호가 들어올때마다 값을 찾습니다.
  • blog.urls는 blog디렉토리 하위 urls.py를 참조하게 됩니다.
  • include() : Django는 URL 의 그 시점까지 일치하는 부분을 잘라내고, 남은 문자열 부분을 후속 처리를 위해 include 된 url파일 경로에 전달합니다.
from django.contrib import admin
from django.urls import path, include

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

  • blog 디렉토리 하위 urls.py 파일을 생성하도록 합니다.
  • 같은 디렉토리 views.pyblog_home이라는 함수와 맵핑됩니다.
from django.urls import path
from . import views

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

4. views.py 작성

  • blog/urls.py 에서 views.blog_home 함수에 맵핑하였습니다.
  • views.py 파일에 아래와 같이 작성해줍니다.
  • views.py 파일에서 작성된 함수는 첫번째 인자로 HttpRequest타입의 인자로 받아야합니다. 누락시 TypeError가 발생합니다.
  • 함수의 반환은 HttpResponse타입으로 리턴해야합니다.
from django.http import HttpResponse


def blog_home(request):
    return HttpResponse("Django로 블로그를 만들어 봅시다.")

5. 실행

  • 아래의 명령어로 서버를 실행합니다.
$ python manage.py runserver