Django - 0

윤형·2024년 9월 6일

Django

목록 보기
1/12
post-thumbnail

백엔드 개발을 위해 스택을 찾던 중, 파이썬 기반인 장고를 알게 되었다.
장고는 spring 처럼 MVC 패턴이 아니라 MVT패턴이였다.

  • <MVC 패턴>
    Model - 앱을 구성하는 데이터를 담당
    View - 유저에게 데이터를 보여주는 방식을 담당
    Controller - 유저의 입력을 처리하는 상호작용 로직을 담당
    세 가지 구획으로 웹 애플리케이션의 기능을 분류.

  • <Django의 MVT 패턴>
    Model - 앱을 구성하는 데이터를 담당(같음)
    View - controller의 기능
    Template - view의 기능

🎬 django 웹 서비스 기본 시나리오

1. 유저(클라이언트/웹브라우저)가 서버로 HTTP 요청 전송
2. 이를 django의 URL dispatcher가 받아 담당 View function으로 routing
3. View function은 사전 정의된 로직에 따라 들어온 요청을 처리
4. 그 과정에서 Model의 애플리케이션 데이터를 create/read/update/delete
5. 요청 처리 결과를 Template에 담아 render
6. render된 결과를 HTTP 응답의 형태로 View가 반환. 이를 유저에게 다시 제공.

Model

View

Templete


ORM

Django 웹 프레임워크에서 제공하는 데이터베이스와의 상호작용을 위한 도구입니다. ORM을 사용하면 SQL 쿼리를 직접 작성하지 않고도 Python 코드로 데이터베이스 작업을 수행할 수 있습니다. Django ORM은 데이터베이스 모델을 Python 클래스와 매핑하여, 데이터베이스의 테이블과 레코드를 객체로 다룰 수 있게 해줍니다.

ORM의 필터링 옵션 종류

필터링 옵션설명
__exact필드값이 정확히 일치하는 경우
__iexact대소문자 구분없이 정확하게 일치하는 경우
__contains필드 값이 특정 문자열을 포함하는 경우
__icontains대소문자 구분없이 포함하는 경우
__gt필드 값이 주어진 값보다 큰 경우
__gte필드 값이 주어진 값보다 크거나 같은 경우
__lt필드 값이 주어진 값보다 작은 경우
__lte필드 값이 주어진 값보다 작거나 같은 경우
__in필드 값이 주어진 리스트 포함되는 경우
__isnull필드 값이 Null인 경우
__range필드 값이 주어진 범위 내에 있는 경우
profile
제가 관심있고 공부하고 싶은걸 정리하는 저만의 노트입니다.

0개의 댓글