1. App 생성
- Django는 한 개의 프로젝트, 다수 앱 형태를 가집니다.
- 앱을 생성해봅니다.
blog
는 앱 명칭입니다. 바로 뒤이어지는 Url function 관련 포스팅에서 사용되어집니다.
$ python manage.py startapp blog
- 명령어를 실행하고 나면 각각의 앱명으로 되어있는 디렉토리와 파일이 추가되어 있음을 확인할 수 있습니다.
- 각각의 파일의 역할은 다음과 같습니다.
- apps.py : 앱 설정을 조정
- admin.py : Django는 관리자 페이지를 생성해주는 기능이 있음. 앱의 관리자 페이지 기능
- models.py : 데이터베이스 ORM 클래스 작성
- tests.py : 단위테스트 작성
- views.py : url과 맵핑되어 동작하는 함수 또는 클래스를 작성
2. Setting 파일에 등록
- App을 생성하고나면, 사용하기 위해서는
settings.py
에 앱을 등록해야합니다. 'blog',
이렇게 마지막이지만 콤마를 붙이는 것이 권장됩니다. 에러 발생원인을 줄여줍니다.
... 생략
INSTALLED_APPS = [
... 생략
'blog', # 추가된 부분
]
... 생략
3. URL Routing 정보 추가
프로젝트명/urls.py
경로에 아래와 같이 정보를 추가합니다.프로젝트명/urls.py
파일 :프로젝트명/settings.py
에ROOT_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.py
에blog_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
- 브라우저에서 http://127.0.0.1:8000로 접속해봅니다.