Tutorial을 따라하다가 이해가 잘 되지않고 각 파일들이 무슨 역활을 하기에 저런 코드들을 입력하는 것인지 어느부분에서 import하고 그런 것들을 파악하기 위해 찾아보았다.
URLs :
View :
Models :
URL mapper가 저장되어 있는 파일이다.
내부의 예시를 들면
urlpatterns = [
path('admin/', admin.site.urls),
path('book/<int:id>/', views.book_detail, name='book_detail'),
path('catalog/', include('catalog.urls')),
re_path(r'^([0-9]+)/$', views.best),
]
이러한 형식인데 이 부분에 대한 설명을 보자
일단 urlpatterns 객체는 path()와 re_path()함수를 항목으로 가지는 리스트 형식이다.
두 메소드의 첫번째 인수는 일치시킬 경로(패턴)이다.
두 번째 인수는 패턴이 일치할 때 호출되는 다른 함수이다. 예시로 위 코드에서 views.book_detail은 이 함수가 book_detail()함수이며 views 모듈 안에서 찾을 수 있다는 것을 뜻한다! (views.py 파일 안에서 찾을 수 있다.!!!!!)
뷰는 웹 클라이언트로부터 HTTP요청을 수신하고 HTTP응답을 되돌려주는 웹 어플리케이션의 심장이다.
## filename: views.py (Django view functions)
from django.http import HttpResponse
def index(request):
# Get an HttpRequest - the request parameter
# perform operations using information from the request.
# Return HttpResponse
return HttpResponse('Hello from Django!')
위의 예시는 URLmapper(urls.py)가 불러올 수 있는 최소 뷰 함수 index()를 보여준다.
다른 모든 뷰 함수처럼 HttpRequest객체를 인자(request)로 받고 HttpResponse객체를 반환한다.
Django는 모델(models)이라는 파이썬 객체를 통해 데이터를 관리하고 쿼리한다.
모델은 필드 타입과 그들의 최대 크기, 기본 값들, 선택 목록 옵션,문서의 도움말 텍스트 등을 포함하여 저장된 데이터의 구조를 정의한다. 모델의 정의는 기본 데이터베이스와는 별개이다.
만약 사용할 데이터베이스를 정했다면 굳이 접근할 필요는 없다.