Django 튜토리얼: 기능, Archi강의 및 역사

⚡ 스마트 요약

Django는 무료 오픈 소스 소프트웨어입니다. Python 모델-뷰-템플릿(MVT) 패턴을 기반으로 구축된 웹 프레임워크로, 재사용 가능한 구성 요소, 자동 관리 인터페이스 및 모든 기능이 포함된 설계를 통해 안전하고 확장 가능하며 데이터베이스 기반의 웹사이트를 신속하게 개발할 수 있습니다.

  • 🔘 뼈대: Django는 고급 버전입니다. Python 복잡한 데이터베이스 기반 웹 애플리케이션을 신속하게 구축하기 위한 프레임워크입니다.
  • ☑️ Archi강의: 모델-뷰-템플릿(MVT) 패턴을 사용하면 Django가 컨트롤러를 관리하고 데이터, 로직 및 표현을 분리할 수 있습니다.
  • 포함된 배터리: 내장된 관리자 기능, 인증, 양식 및 국제화 기능 덕분에 반복적인 설정 작업이 대부분 제거됩니다.
  • 🛠️ 보안 : 기본 보안 조치는 CSRF, 크로스 사이트 스크립팅, SQL 인젝션 및 클릭재킹 공격을 차단합니다.
  • 🧪 규모 : InstagramPinterest, Mozilla, Disqus는 매우 높은 트래픽을 처리하기 위해 Django를 사용합니다.
  • 🤖 AI : Django는 머신러닝 모델을 API 형태로 제공하며, GitHub Copilot과 같은 도구는 백엔드 코딩 속도를 높여줍니다.

초보자를 위한 Django 튜토리얼

Django는 웹에서 가장 큰 사이트들을 구동하는 데 사용되며, 동시에ping 매일 빠르고 체계적인 개발이 가능합니다. 아래 섹션에서는 Django의 기능, 아키텍처 및 역사를 살펴보기 전에 웹 프레임워크의 기본 사항과 Django를 차별화하는 요소에 대해 먼저 알아보겠습니다.

Django 튜토리얼 요약

이 Django 튜토리얼은 기초부터 모든 기본 주제를 다룹니다. 이 튜토리얼을 통해 Django란 무엇인지, 그 역사, 특징, Django 프레임워크의 특징, Django의 구성 요소, 장점과 단점 등 다양한 개념을 배우게 됩니다.

장고를 배우기 전에 다음 사항을 이해해 봅시다.

웹 프레임워크란 무엇입니까?

웹 프레임워크는 유연하고 확장 가능하며 유지 관리가 용이한 동적 웹사이트, 웹 애플리케이션 또는 웹 서비스를 구축하는 데 도움이 되는 코드 라이브러리입니다. 다양한 웹 프레임워크에는 PHP용 Zend가 있습니다. Ruby on Rails 루비와 다른 사람들을 위해서요.

장고는 무엇입니까?

장고 웹 개발 프레임워크입니다. Python 빠르고 효율적인 웹사이트 개발을 위한 표준적인 방법을 제공합니다. 이 고급 웹 프레임워크의 주요 목표는 복잡한 데이터베이스 기반 웹사이트를 구축하는 것입니다. 이를 통해 고품질 웹 애플리케이션을 구축하고 유지 관리할 수 있으며, 개발 과정을 원활하고 효율적으로 만들어 신속한 개발을 가능하게 합니다.

왜 장고인가? Django의 주요 장점

Django의 주요 장점은 다음과 같습니다.

  • Django는 설치 및 실행이 간편합니다. 시작하는 데 도움이 되는 다양한 옵션을 제공합니다.
  • 이는 관리 활동을 위한 즉시 사용 가능한 사용자 인터페이스를 제공합니다.
  • 이 소프트웨어는 내장된 국제화 시스템을 사용하여 다국어 웹사이트를 구현할 수 있도록 합니다.
  • 이를 통해 대규모 트래픽 수요를 신속하게 처리할 수 있습니다.
  • Django는 모든 유형의 콘텐츠 관리 시스템, 소셜 네트워크, 과학 컴퓨팅 플랫폼을 구축하는 데 사용됩니다.
  • Django는 엔드투엔드 애플리케이션 테스트를 제공하는 데 도움이 됩니다.
  • 이 기능을 사용하면 HTML 출력으로 API를 문서화할 수 있습니다.
  • REST 프레임워크는 다양한 인증 프로토콜을 풍부하게 지원합니다.
  • 권한 및 속도 제한 정책을 제공합니다.
  • 단일 사용자의 속도 제한 API 요청에 널리 사용됩니다.

장고의 역사

출간연도 연혁
2003 이 프로젝트는 애드리안 홀로바티와 사이먼 윌리슨이 로렌스 저널-월드 신문사의 내부 프로젝트로 시작했습니다.
2005년 7월 이 앨범은 재즈 기타리스트 장고 라인하르트의 이름을 따서 "장고"라는 제목으로 2005년 7월에 발매되었습니다.
2008년 5월 장고 소프트웨어라고 선언되었습니다. Foundation (DSF)는 Django를 유지 관리합니다.
29 7월 2009 Django 1.1이 출시되었으며, 집계 및 트랜잭션 기반 테스트와 같은 기능이 포함되어 있습니다.
17 월 2010 Django 1.2 버전이 출시되었습니다. 이번 업데이트에서는 여러 개의 데이터베이스와 이메일 백엔드와 같은 기능이 추가되었으며, 세션과 쿠키 관련 기능도 개선되었습니다.
월 23 2011 1.3 버전에서는 클래스 기반 뷰와 정적 파일과 같은 기능이 도입되었습니다.
월 23 2012 1.4 버전은 시간대 설정 및 브라우저 내 테스트와 같은 새로운 기능을 포함하여 출시되었습니다.
2월 26 2013 1.5 버전에는 다음이 포함되어 있습니다. Python 3가지 지원 및 구성 가능한 사용자 모델 기능.
6 11월 2013 1.6 버전에는 데이터베이스 트랜잭션 관리 및 연결 풀링 기능이 포함되어 있습니다.
2 9월 2014 1.7 버전에는 애플리케이션 로딩, 마이그레이션, 구성과 같은 새로운 기능이 포함되었습니다.
1 4월 2015 다양한 템플릿 엔진에 대한 기본 지원이 제공되었습니다.
1 12 월 2015 1.9 버전에서는 자동 비밀번호 유효성 검사 기능이 도입되었습니다.
8월 1 2016 1.10 버전에서는 전체 텍스트 검색이 가능합니다. PostgreSQL 발사되었다.
4 4월 2017 1.11 버전이 해당 기능을 지원하는 마지막 버전이 되었습니다. Python 2.7.
2 12 월 2017 버전 2.0이 최초가 되었습니다. Python 3 버전 한정 출시 버전입니다.
8월 1 2018 버전 2.1에는 모델 "보기" 권한 지원 기능이 포함되었습니다.
2021 Django 3.0 지원을 제거하고 Django 3.2 지원을 추가했습니다.

이번 Django 초보자 튜토리얼에서는 Django의 기능에 대해 알아보겠습니다.

장고의 특징

다음은 Django의 기능입니다.

  • 패턴을 정의하는 데 도움이 됩니다. URL신청서에 s를 입력하세요.
  • 단순하지만 강력하다 URL 시스템.
  • 내장 인증 시스템.
  • 객체 지향 프로그래밍 언어로 작성된 데이터베이스로, 최고 수준의 데이터 저장 및 검색 기능을 제공합니다.
  • 자동 관리자 인터페이스 기능을 통해 항목을 추가, 편집 및 삭제할 수 있습니다. 관리자 패널은 필요에 따라 맞춤 설정할 수 있습니다.
  • 캐시 프레임워크에는 여러 가지 캐시 메커니즘이 포함되어 있습니다.

이번 Django 프레임워크 튜토리얼에서는 Django의 특징에 대해 알아보겠습니다.

장고의 특징

Django의 주요 특징은 다음과 같습니다.

  • 느슨한 결합 Django는 스택의 각 요소를 다른 요소와 독립적으로 만들 수 있도록 도와줍니다.
  • Less 암호 – 효과적인 개발을 보장합니다.
  • 반복되지 않음 모든 것은 반복해서 개발하는 대신 정확히 한 곳에서 개발해야 합니다.
  • 빠른 개발 – Django는 빠르고 안정적인 애플리케이션 개발을 제공합니다.
  • 일관된 디자인 Django는 깔끔한 디자인을 유지하고 최고의 웹 개발 모범 사례를 쉽게 따를 수 있도록 해줍니다.

Django 초보자를 위한 다음 튜토리얼에서는 Django의 아키텍처에 대해 알아보겠습니다.

장고 Archi강의: MVC 및 MVT

Django의 자세한 아키텍처는 다음과 같습니다.

장고 Archi강의

장고 Archi강의

MVC 패턴

웹이나 데스크톱 환경에서 사용자 인터페이스(UI)를 제공하는 애플리케이션에 대해 이야기할 때, 일반적으로 MVC 아키텍처를 언급합니다. MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)를 기반으로 합니다.

The 모델 데이터 구조를 정의하고 데이터베이스 쿼리를 처리합니다.

The 관측 어떤 데이터가 표시되어야 하는지 정의하고 HTTP 응답을 반환합니다.

The 제어 장치 사용자 상호작용을 처리하는 애플리케이션의 부분입니다.

장고 MVC-MVT 패턴

모델-뷰-템플릿(MVT)은 MVC와는 다른 개념입니다. 이 두 아키텍처 패턴의 가장 큰 차이점은 Django 자체가 컨트롤러 부분(모델과 뷰 간의 상호 작용을 제어하는 ​​소프트웨어 코드)을 관리한다는 점입니다. 템플릿은 HTML 파일과 Django 템플릿 언어(DTL) 파일이 혼합된 형태입니다.

아래 다이어그램은 MVT 패턴의 모든 구성 요소가 특정 사용자 요청을 처리하기 위해 서로 어떻게 상호 작용하는지 보여줍니다.

장고 Archi강의: MVC 및 MVT

MVT Archi강의

위 다이어그램에서 볼 수 있듯이, 사용자는 Django에 리소스를 요청합니다. Django는 컨트롤러 역할을 하며 해당 리소스가 사용 가능한지 확인합니다. URL.

경우 URL 맵을 생성하면 모델 및 템플릿과 상호 작용하는 뷰가 호출됩니다. 그러면 Django는 사용자에게 응답하고 템플릿을 응답으로 보냅니다.

이번 Django 초보자 튜토리얼 시리즈에서는 Django의 구성 요소에 대해 알아보겠습니다.

장고의 구성요소

형태

Django에는 양식 렌더링을 HTML로 처리하는 강력한 양식 라이브러리가 있습니다. 라이브러리는 제출된 데이터의 유효성을 검사하고 이를 다음으로 변환하는 데 도움을 줍니다. Python 유형.

인증

이 시스템은 사용자 계정, 그룹, 쿠키 기반 사용자 세션 등을 관리합니다.

관리자

모델의 메타데이터를 읽어 사이트의 콘텐츠를 관리하는 데 사용할 수 있는 강력한 인터페이스를 제공합니다.

국제화

Django는 다양한 언어로 텍스트를 번역하는 기능과 날짜, 시간, 숫자 및 시간대에 대한 지역별 서식 지정 기능을 제공합니다.

보안

Django는 다음과 같은 공격에 대한 보호 조치를 제공합니다.

  • CSRF (Cross-Site Request Forgery)
  • 교차 사이트 스크립팅
  • SQL 인젝션
  • 클릭 재킹
  • 원격 코드 실행

Django를 사용하는 유명 기업

다음은 Django를 사용하는 회사들입니다.

  • Bitbucket
  • Disqus
  • NASA
  • PBS(공영방송 서비스)
  • 핀터레스트
  • Instagram
  • 모질라
  • 워싱턴 포스트
  • 뉴욕 타임즈
  • 로스 앤젤레스 타임스
  • 가디언
  • 지리적 국가
  • 디스커버리 채널

Django 사용의 단점

다음은 Django 사용의 몇 가지 단점입니다.

  • 단일 프로세스는 여러 요청을 동시에 처리할 수 없습니다.
  • 장고는 매우 단일화된 도구입니다.
  • 구성 요소들이 함께 배포되면 혼란이 발생할 수 있습니다.
  • 장고(Django) 작업을 하려면 전체 시스템에 대한 지식이 필요합니다.
  • 이는 웹 애플리케이션 구성 요소를 긴밀하게 결합시킵니다.
  • 사소한 작업에는 긴 프로그래밍을 수행해야 합니다.

자주 묻는 질문

장고는 주로 백엔드 프레임워크이지만, 템플릿 레이어가 HTML을 렌더링하기 때문에 풀스택 프레임워크로 설명되기도 합니다. 장고는 서버 측 로직, 데이터베이스, 라우팅 및 보안을 관리하고, 템플릿은 브라우저에서의 화면 표시를 담당합니다.

Django는 ORM, 관리자 패널, 인증 기능이 내장된 완벽한 풀스택 프레임워크입니다. Flask는 최소한의 기능만 제공하는 경량 마이크로프레임워크로, 동일한 기능을 확장 기능을 통해 구현하여 개발자에게 더 많은 수동 제어 권한을 제공합니다.

Django ORM(객체 관계형 매퍼)을 사용하면 데이터베이스 테이블을 다음과 같이 정의할 수 있습니다. Python 클래스와 쿼리를 사용하여 클래스를 확인합니다. Python 원시 SQL 대신 코드를 사용합니다. 다음과 같은 데이터베이스를 지원합니다. PostgreSQL, MySQL, SQLite예산 및 Oracle.

명령줄에서 `python -m django –version`을 실행하거나, Python `shell` 명령어를 실행하고 `import django`를 입력한 다음 `print(django.get_version())`을 입력하면 설치된 Django의 릴리스 버전이 표시됩니다.

미들웨어는 모든 요청과 응답을 전역적으로 처리하는 일련의 후크입니다. Django는 세션, 인증, CSRF 보호 및 보안 헤더를 위해 미들웨어를 사용하며, 각 미들웨어는 뷰 실행 전후에 순서대로 실행됩니다.

에 대한 실무 지식 Python HTTP, HTML, 데이터베이스와 같은 기본적인 웹 개념이 필요합니다. 객체 지향 프로그래밍을 이해하면 Django 모델과 클래스 기반 뷰를 훨씬 쉽게 배울 수 있습니다.

네. Django는 뷰 또는 Django REST Framework를 통해 머신러닝 모델을 제공하고 예측 결과를 API 엔드포인트로 노출하는 경우가 많습니다. 학습된 모델은 시작 시 한 번 로드되어 웹 또는 모바일 클라이언트에 추론 결과를 반환합니다.

GitHub Copilot 및 유사한 AI 도우미는 Django 모델, 뷰 등을 자동 완성합니다. URL 패턴과 테스트를 활용하면 반복적인 상용구 코드를 쉽게 생성할 수 있습니다. 개발 속도를 높여주지만, 생성된 코드는 항상 보안과 정확성을 검토해야 합니다.

이 게시물을 요약하면 다음과 같습니다.