브렌쏭의 Veritas_Garage

[Python] Django Basics 본문

[Project_하다]/[Project_공부]

[Python] Django Basics

브렌쏭 2024. 8. 26. 09:19

Django, Python, Web

Django

D는 묵음이야

  • Django는 파이썬으로 작성된 오픈 소스 웹 어플리케이션 프레임워크이다.
  • Django는 웹 개발을 빠르게 하고, 웹 개발을 하는데 필요한 많은 것들을 제공한다.
    • 프론트엔드, 백엔드를 모두 지원한다.
    • ORM(Object-Relational Mapping)을 지원한다.
    • MVT 패턴(Model, View, Template) 패턴을 사용한다.
  • Django는 MTV 패턴을 사용한다.
    • Model: 데이터베이스를 정의한다.
    • Template: 사용자가 보게 될 화면을 정의한다.
    • View: Model과 Template 사이의 상호작용을 관리한다.
  • Admin 사이트를 제공한다.
  • Elegant URL Design을 제공한다.
    • 각 URL 형태를 파이썬 함수나 클래스에 직접 연결 가능하다.
    • URL을 통해 뷰를 호출할 수 있다.
    • URL을 통해 뷰를 호출할 때, 추가적인 인자를 전달할 수 있다.
  • Django는 ORM(Object-Relational Mapping)을 지원한다.
    • ORM은 데이터베이스의 테이블을 객체로 매핑해주는 것이다.
    • SQL을 사용하지 않고, 파이썬 코드로 데이터베이스를 조작할 수 있다.

WSGI (Web Server Gateway Interface)

  • WSGI는 파이썬 웹 어플리케이션과 웹 서버가 통신하는 인터페이스이다.
  • 파이썬에서 웹 프로그램을 개발하기 위한 표준 인터페이스로, 웹서버와 파이썬 애플리케이션이 통신하기 위한 규약.

Django Structure

Views

  • Django에서 View는 웹 요청을 받아서, 전달받은 데이터를 처리해서 가공한 후, 결과를 응답하는 역할을 한다.
  • View는 함수형 뷰와 클래스형 뷰로 나뉜다.
  • 함수형 뷰는 함수로 작성된 뷰이다. FBV(Function-Base Views)
  • 클래스형 뷰는 클래스로 작성된 뷰이다. CBV(Class-Base Views)

FBV

  • 함수형 뷰는 함수로 작성되기 때문에, 간단한 로직을 처리할 때 사용한다.

CBV

  • 클래스형 뷰는 클래스로 작성되기 때문에, 상속을 통해 코드의 재사용성을 높일 수 있다.
  • 클래스형 뷰는 Mixin을 사용해서 코드의 재사용성을 높일 수 있다.
    • Mixin은 클래스에서 특정 기능을 제공하기 위한 클래스이다.
    • Mixin은 다중 상속을 통해 클래스에 기능을 추가할 수 있다.
  • 클래스형 뷰는 Generic View를 사용해서 코드의 재사용성을 높일 수 있다.
    • Generic View는 장고에서 제공하는 여러가지 뷰를 상속받아서 사용할 수 있다.
    • Generic View는 CRUD(Create, Read, Update, Delete)에 대한 뷰를 제공한다.
    • Generic View는 ListView, DetailView, CreateView, UpdateView, DeleteView 등을 제공한다.
    • Generic View는 FormView를 사용해서 폼을 처리할 수 있다.
    • Generic View는 TemplateView를 사용해서 템플릿을 렌더링할 수 있다.
  • 클래스형 뷰는 Decorator를 사용해서 로직을 추가할 수 있다.
    • Decorator는 함수를 감싸서 함수의 기능을 확장할 수 있다.
    • Decorator는 @를 사용해서 함수 위에 작성한다.
    • Decorator는 login_required, permission_required 등을 사용해서 로직을 추가할 수 있다.

Models

  • Django에서 Model은 데이터베이스의 테이블을 정의하는 역할
    • Model은 데이터베이스의 테이블을 객체로 매핑한다.

Templates

Django Template Language

  • Django Template Language(DTL)은 Django에서 제공하는 템플릿 언어이다.
  • DTL은 HTML과 Python 문법을 혼합해서 사용할 수 있다.
    • DTL은 변수, 필터, 태그를 제공한다.
    • DTL은 if, for, block, extends 등을 제공한다.
    • DTL은 include를 사용해서 템플릿을 재사용할 수 있다.
  • DTL은 템플릿 상속을 사용해서 템플릿을 재사용할 수 있다.
    • 템플릿 상속은 기본 템플릿을 상속받아서, 확장된 템플릿을 만들 수 있다.
    • 템플릿 상속은 block을 사용해서 확장할 부분을 지정할 수 있다.
Comments