본문 바로가기
Web Development

Django 환경설정(2) : URL, View, Template, Model 설정

by ISLA! 2023. 7. 26.

Django 구성 요소 별 관계/흐름

 

URL, View, Template, Model 설정

1. 어플리케이션 path를 프로젝트 settings 에 추가

✔️ URL은 사용자의 요청을 특정 뷰와 매핑해주어야 한다.
     이를 위해 프로젝트의 urls.py와 각 앱의 urls.py 파일에 URL 패턴을 정의한다!

 

  • 프로젝트 디렉토리 내, urls.py 로 접속 : ToDoList(프로젝트) > ToDoList(프로젝트) > urls.py 
  • urlpatterns에 path 추가 (아래 이미지 참고)

 

2. 생성한 어플리케이션 폴더에 urls.py 생성

👉 1단계에서 생성한 url 파일을 앱 폴더에 생성한다고 생각하면됨!

  • 어플리케이션 폴더 우클릭 > 새파일 > urls.py 생성 

 

3. urls.py 에 URL 패턴을 정의

  • 2단계에서 만든 urls.py 에 URL 패턴을 정의
  • ToDoList(프로젝트) > my_to_do_app(앱) > urls.py(파일) 에 다음을 작성
# -*- coding:utf-8 -*-

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index) 	#views.py 파일에서 Index 함수를 찾아!
]

urls.py 접근 흐름 참고

 

4. view.py 파일 정의

👉 view란?
- 사용자가 볼 수 있는 화면 구성으로, views.py 파일에 정의됨
- 웹 애플리케이션의 비즈니스 로직을 처리하는 부분
- 사용자 요청을 처리하고, 데이터를 조회/수정하며, 템플릿에 데이터를 넘겨줌

 

  • 경로 : 프로젝트(ToDoList) > 앱(my_to_do_app) > views.py
  • 입력 예시 :
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("나의 첫번째 페이지")

 

5. 개발 서버를 실행하여 테스트

  • $ python manage.py runserver
  • command + 주소 클릭

 

6. 템플릿 작성

👉 템플릿이란?
- 사용자에게 보여지는 HTML 문서를 작성하는데 사용
- 템플릿에서는 필요한 데이터를 적절하게 렌더링하여 사용자에게 동적인 웹 페이지를 제공

 

  • 일반적으로, 프로젝트와 앱의 템플릿 디렉토리를 다음과 같은 구조로 유지
project_name/
|-- project_name/
|   |-- settings.py
|   |-- urls.py
|   |-- ...
|   +-- templates/        # 프로젝트 템플릿 디렉토리
|-- app_name1/
|   |-- models.py
|   |-- views.py
|   |-- ...
|   +-- templates/        # 첫 번째 앱의 템플릿 디렉토리
|-- app_name2/
|   |-- models.py
|   |-- views.py
|   |-- ...
|   +-- templates/        # 두 번째 앱의 템플릿 디렉토리
+-- ...
  • 템플릿 위치 예시

 

7. 모델 정의 : models.py 작성

👉 모델이란?
- Django의 핵심 요소 중 하나는 데이터 모델링!
- 데이터베이스에 저장되는 데이터 구조를 정의하기 위해 모델을 작성 (테이블 생성 개념)
- 이를 models.py 파일에 정의하며, 각 모델은 Python 클래스로 표현.

 

  • 프로젝트(ToDoList) > 앱(my_to_do_app) > models.py
  • models.py 에 아래 예시와 같이 작성
from django.db import models

# Create your models here.

class Todo(models.Model):		#model명은 자유이나, 괄호 안 내용은 필수
    content = models.CharField(max_length=255) 	#테이블생성과 유사, 여기에 입력된 데이터를 쌓음

 

8. Model을 DB에 반영

  • 모델을 정의한 후에는 이를 데이터베이스 스키마로 반영해야 함
  • 아래 명령어를 입력
$ python manage.py makemigrations
$ python manage.py migrate

 

9. SQLite 실행

  • $ python manage.py dbshell
    • Django 프로젝트에서 데이터베이스 쉘을 실행하는 명령
    • 데이터베이스와 상호작용할 수 있는 쉘 환경이 열림 👉 Django가 설정된 데이터베이스에 액세스하여 SQL 쿼리를 실행하거나 데이터를 확인할 수 있음
    • 실행 결과 아래와 같음

 

 

  • .table
    • SQLite 데이터베이스의 모든 테이블을 나열

 

 

  • PRAGMA table_info(my_to_do_app_todo);
    • SQLite 데이터베이스에서 특정 테이블의 열(컬럼) 정보를 가져옴
    • 각 열에 대한 정보로는 열 이름, 데이터 타입, 기본값, Null 허용 여부 등이 포함됨

 

 

728x90