Django 기본개념

hs·2021년 8월 12일
0

Tutorial을 따라하다가 이해가 잘 되지않고 각 파일들이 무슨 역활을 하기에 저런 코드들을 입력하는 것인지 어느부분에서 import하고 그런 것들을 파악하기 위해 찾아보았다.

  1. Django는 웹 브라우저로부터 HTTP요청을 받으면
  2. URL과 POST데이터 또는 GET데이터의 정보에 기반하여 요구 사항을 알아낸다.
  3. 그 다음 데이터베이스로부터 정보를 읽거나 쓰고, 또는 필요한 다른 작업들을 수행한다.
  4. 그 다음 웹 브라우저에 응답(Response)을 반환하는데 주로 동적인 HTML 페이지를 생성하면서 응답한다.

URLs :

  • 단일 함수를 통해 모든 URL요청을 처리하는 것이 가능은 하다.
  • 하지만 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽다.
  • URL mapper는 요청 URL을 기준으로 HTTP 요청을 적절한 뷰(view)로 보내주기 위해 사용

View :

  • 뷰는 HTTP요청을 수신하고 HTTP응답을 반환하는 요청 처리 함수이다.
  • 뷰는 Model을 통해 요청을 충족시키는데 필요한 데이터에 접근한다.
  • 템플릿에게 응답의 서식 설정을 맡긴다.

Models :

  • 모델은 응용프로그램의 데이터 구조를 정의하고 데이터베이스의 기록을 관리(추가, 수정, 삭제)하고 쿼리하는 방법을 제공하는 파이썬 객체이다.
    Templates :
  • 템플릿은 파일의 구조나 레이아웃을 정의 하고, 실제 내용을 보여주는 데 사용되는 플레이스홀더를 가진 텍스트 파일입니다.

장고는 이 구조를 "모델 뷰 템플릿 (MVT)" 아키텍처라고 부릅니다.

urls.py

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 파일 안에서 찾을 수 있다.!!!!!)

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객체를 반환한다.

models.py

Django는 모델(models)이라는 파이썬 객체를 통해 데이터를 관리하고 쿼리한다.
모델은 필드 타입과 그들의 최대 크기, 기본 값들, 선택 목록 옵션,문서의 도움말 텍스트 등을 포함하여 저장된 데이터의 구조를 정의한다. 모델의 정의는 기본 데이터베이스와는 별개이다.
만약 사용할 데이터베이스를 정했다면 굳이 접근할 필요는 없다.

profile
무엇이든 끝까지 보람차게

0개의 댓글