python/Django

Django Modules - 이론 설명

MasterOfAI 2024. 12. 26. 18:25

1. Django 모듈(Module)

역할:

  • Django 모듈은 프로젝트에서 기능을 분리하고 구성하는 데 사용됩니다.
  • 모듈은 보통 앱(App) 단위로 생성되며, 하나의 앱은 특정 기능이나 도메인을 처리합니다.

모듈의 구성:

앱 디렉토리 내의 주요 파일들은 아래와 같습니다:

파일 이름역할

models.py 데이터베이스 테이블을 정의합니다.
views.py 클라이언트 요청을 처리하고 응답을 반환합니다.
urls.py 요청 URL을 특정 뷰로 라우팅합니다.
admin.py Django Admin 사이트에서 데이터를 관리하는 설정을 제공합니다.
apps.py 앱의 메타데이터를 정의합니다.
tests.py 앱의 테스트 코드를 작성합니다.
templates/ HTML 템플릿 파일을 포함합니다.

 

모듈의 역할 분담:

  • views.py는 요청 로직을 처리.
  • models.py는 데이터베이스 관련 로직을 처리.
  • urls.py는 뷰를 호출하기 위한 라우팅을 담당.
  • templates/는 데이터를 렌더링하여 HTML로 반환.

전체 데이터 흐름에서 Module 들의 역할 :

  1. 요청(Request): 클라이언트가 특정 URL로 요청을 보냅니다.
  2. URL 라우팅: urls.py가 요청된 URL을 처리할 뷰를 결정합니다.
  3. 뷰(View):
    • views.py에서 지정된 뷰가 요청을 처리합니다.
    • 필요한 데이터를 models.py에서 가져오거나 처리합니다.
    • 가져온 데이터를 templates/로 전달하여 렌더링합니다.
  4. 응답(Response): 뷰에서 처리한 결과를 HTML, JSON, 또는 다른 형식으로 클라이언트에 반환합니다.

 

2. 뷰(View)

역할:

  • 뷰는 Django의 MTV(Model-Template-View) 아키텍처에서 컨트롤러와 같은 역할을 합니다.
  • 클라이언트 요청을 처리하고, 필요한 데이터를 준비한 뒤, 템플릿을 사용하여 HTML 응답을 반환합니다.

뷰의 종류:

  1. 함수형 뷰(Function-based View, FBV):
    • Python 함수를 사용하여 구현.
    from django.shortcuts import render
    
    def my_view(request):
        return render(request, 'template.html', {'data': 'Hello, Django!'})

클래스형 뷰(Class-based View, CBV):

  • 클래스를 사용하여 구현하며, 재사용성과 확장성이 좋습니다.
from django.views import View
from django.http import HttpResponse

class MyView(View):
    def get(self, request):
        return HttpResponse('Hello, Django!')

 

 

'python > Django' 카테고리의 다른 글

Django First APP 만들기  (0) 2024.12.26
Django 설치 , 첫번째 App작성 , 두개의 App 동시 실행  (1) 2024.12.22
links  (0) 2023.10.06