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 들의 역할 :
- 요청(Request): 클라이언트가 특정 URL로 요청을 보냅니다.
- URL 라우팅: urls.py가 요청된 URL을 처리할 뷰를 결정합니다.
- 뷰(View):
- views.py에서 지정된 뷰가 요청을 처리합니다.
- 필요한 데이터를 models.py에서 가져오거나 처리합니다.
- 가져온 데이터를 templates/로 전달하여 렌더링합니다.
- 응답(Response): 뷰에서 처리한 결과를 HTML, JSON, 또는 다른 형식으로 클라이언트에 반환합니다.
2. 뷰(View)
역할:
- 뷰는 Django의 MTV(Model-Template-View) 아키텍처에서 컨트롤러와 같은 역할을 합니다.
- 클라이언트 요청을 처리하고, 필요한 데이터를 준비한 뒤, 템플릿을 사용하여 HTML 응답을 반환합니다.
뷰의 종류:
- 함수형 뷰(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 |