백엔드 개발 파이썬 튜토리얼 Django 버전 진화: 1.x에서 3.x까지, 새로운 기능과 개선 사항에 대해 알아보세요.

Django 버전 진화: 1.x에서 3.x까지, 새로운 기능과 개선 사항에 대해 알아보세요.

Jan 19, 2024 am 09:46 AM
버전 django 기능 개선

Django 버전 진화: 1.x에서 3.x까지, 새로운 기능과 개선 사항에 대해 알아보세요.

Django는 Python으로 작성된 웹 프레임워크입니다. 주요 특징은 빠른 개발, 쉬운 확장, 높은 재사용성 등입니다. 2005년 처음 출시된 이후 Django는 강력한 웹 개발 프레임워크로 성장했습니다.

시간이 지남에 따라 Django 버전은 지속적으로 업데이트됩니다. 이 기사에서는 Django 버전 진화, 1.x에서 3.x로의 변경 사항에 대한 심층적인 이해를 제공하고, 새로운 기능, 개선 사항 및 주의가 필요한 변경 사항을 소개하고, 자세한 코드 예제를 제공합니다.

  1. Django 1.x 버전

Django 1.x 버전은 Django의 초기 버전으로 1.0.1부터 1.11.29까지 포함되어 있습니다. 이 버전에서 Django는 이미 다음과 같은 많은 기본 기능을 갖추고 있습니다.

a. 데이터베이스 작업에 ORM 사용

ORM은 Django의 핵심 구성 요소입니다. 이를 통해 개발자는 SQL 문을 직접 사용하지 않고도 Python 코드를 사용하여 데이터베이스를 운영할 수 있습니다. ORM은 작업을 보다 쉽고 직관적으로 만듭니다. 간단한 예:

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

class Author(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField()

class Entry(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    headline = models.CharField(max_length=255)
    body_text = models.TextField()
    pub_date = models.DateTimeField()
    mod_date = models.DateTimeField()
    authors = models.ManyToManyField(Author)
    n_comments = models.IntegerField()
    n_pingbacks = models.IntegerField()
    rating = models.IntegerField()
로그인 후 복사

위 예에서는 Blog, Author 및 Entry라는 세 가지 데이터 모델을 정의했으며 모두 models.Model에서 상속되었습니다. 이러한 클래스의 속성은 데이터베이스 테이블의 필드에 해당합니다. 예를 들어 Blog 클래스에는 문자열 유형 블로그 이름과 슬로건을 각각 저장하는 데 사용되는 이름과 태그라인이라는 두 개의 필드가 있습니다. 데이터 모델을 정의하는 동안 Django는 해당 데이터베이스 테이블, 추가, 삭제, 수정 및 쿼리 작업과 ORM API를 자동으로 생성합니다.

b. URL 자동 관리

Django 1.x 버전에서는 HTTP 요청을 처리하기 위한 뷰 기능만 작성하면 되며, URL을 직접 관리할 필요가 없습니다. Django는 구성된 URL 라우팅을 기반으로 요청을 해당 뷰 기능에 자동으로 매핑합니다. 예:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
    url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
    url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),
]
로그인 후 복사

위의 예에서는 홈페이지, 질문 세부정보 페이지, 투표 결과 페이지, 투표 기능 페이지를 포함한 4개의 URL 경로를 정의했습니다. 각 URL 경로에 대해 해당 처리 기능을 지정합니다. Django는 요청된 URL과 경로를 자동으로 일치시켜 자동으로 URL을 관리하는 기능을 구현합니다.

c. 내장된 관리자 배경 관리 시스템

Django의 관리자 배경 관리 시스템은 매우 강력한 기능입니다. 이 백엔드 관리 시스템을 통해 데이터베이스를 쉽게 추가, 삭제, 수정, 확인할 수 있습니다. Django 1.x 버전의 관리자 백그라운드 관리 시스템에는 이미 관리자 사이트 자동 생성, 데이터 모델 관리, 사용자 정의 목록, 필터 및 양식 표시 등과 같은 많은 기본 기능이 있습니다.

  1. Django 2.x 버전

Django 2.x 버전에는 2.0.0부터 2.2.24까지 포함되어 있으며, 이는 Django에 몇 가지 주요 개선 사항을 제공합니다.

a ASGI 소개

Django 2.x 버전에서는 ASGI(Asynchronous Server Gateway Interface) 프로토콜이 도입되었습니다. ASGI는 개발자가 비동기 웹 애플리케이션을 작성할 수 있도록 하는 비동기 웹 서버용으로 설계된 프로토콜입니다. 이러한 방식으로 웹 소켓, 실시간 통신, 시간이 많이 걸리는 작업 등과 같은 비동기 프로그래밍의 요구 사항을 더 잘 충족할 수 있습니다.

async def application(scope, receive, send):
    assert scope['type'] == 'http'

    await send({
        'type': 'http.response.start',
        'status': 200,
        'headers': [
            [b'content-type', b'text/plain'],
        ]
    })
    await send({
        'type': 'http.response.body',
        'body': b'Hello, world!',
    })
로그인 후 복사

위의 코드 예제에서는 ASGI를 사용하여 간단한 웹 애플리케이션을 작성합니다. 먼저 범위, 수신 및 전송의 세 가지 매개변수를 허용하는 애플리케이션 비동기 함수를 정의합니다. 이러한 매개변수는 ASGI 프로토콜에 의해 고정되고 합의됩니다. 그 중에서 범위는 요청 유형, 경로, 쿼리 문자열 등을 포함하여 요청의 컨텍스트를 나타냅니다. 수신은 요청 수신 방법, 요청 헤더, 응답 코드 등을 나타내는 사전 구성을 나타냅니다. 클라이언트에 응답을 반환합니다.

b. Python 2.x 호환성 제거

Django 2.x 버전에서는 Python 2.x 호환성이 제거되었으며 타사 라이브러리의 Python 2.x 버전은 더 이상 지원되지 않습니다. 이는 개발자가 Django 애플리케이션을 개발하려면 Python 3.x를 사용해야 함을 의미합니다.

또한 Django 2.x 버전에는 다음과 같은 몇 가지 다른 개선 사항과 최적화 기능이 있습니다.

  • 새로운 HTTP 상태 코드 및 예외가 추가되었습니다.
  • 더 나은 비밀번호 보안 메커니즘이 추가되었습니다. 새로운 테스트 프레임워크.
Django 3.x 버전
  1. Django 3.x 버전은 3.0.0부터 3.2.5까지 포함하여 현재 최신 버전입니다. 버전 2.x를 기반으로 기능과 성능이 더욱 향상되었습니다.

a. 경로 매개변수 지원

Django 3.x 버전에서는 Path Converters, 즉 경로 매개변수 지원이 도입되었습니다. 이 새로운 기능은 RESTful API를 개발하는 데 매우 유용하며 URL에 대한 보다 유연한 일치 방법을 제공할 수 있습니다.

from django.urls import path

def greet(request, name):
    return HttpResponse(f'Hello, {name}!')

urlpatterns = [
    path('greet/<name>/', greet),
    ...
]
로그인 후 복사

위의 예에서는 경로 매개변수 이름을 정의했습니다. 요청 경로의 모든 값은 name 매개변수에 채워지고 뷰를 처리할 때 표시될 수 있습니다.

b. UnicodeSlugify 대체

Django 3.x 버전에서는 UnicodeSlugify가 더 이상 기본 Slugify를 대체하는 데 사용되지 않습니다. UnicodeSlugify는 개발자가 더 많은 언어와 문자 집합으로 작업할 수 있도록 하는 타사 라이브러리입니다. UnicodeSlugify 대신, 더 표준화되고, 더 지역화되고, 더 포괄적이고, 더 확장 가능하며 더 안전한 새로운 Slugify 알고리즘이 Django용으로 설계되었습니다.

c. 데이터베이스 쿼리 최적화

Django 3.x 버전에서는 데이터베이스 쿼리 방법이 더욱 최적화되었습니다. 예를 들어 애플리케이션이 시작되면 Django는 모든 데이터베이스 쿼리에 대한 메타데이터를 캐시합니다. 이를 통해 테이블 ​​구조의 조회 횟수를 줄이고 애플리케이션의 응답 속도를 향상시킬 수 있습니다.

또한 Django 3.x 버전에는 다음과 같은 많은 새로운 기능과 개선 사항이 추가되었습니다.

  • 다중 읽기 데이터베이스를 지원하는 새로운 미들웨어
  • 획기적으로 최적화된 쿼리 계획 생성;
  • 비동기 이메일 및 HTTP 요청에 대한 지원이 추가되었습니다.
  • 이 문서에서는 Django 1.x에서 Django 3.x로의 변화에 ​​대해 간략하게 설명합니다. 이러한 변화는 더 나은 성능, 더 나은 개발 효율성, 더 나은 사용 편의성을 제공합니다. MVC 프레임워크로서 Django는 점점 더 완벽해질 것이라고 믿습니다.

위 내용은 Django 버전 진화: 1.x에서 3.x까지, 새로운 기능과 개선 사항에 대해 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux에서 컬 버전을 업데이트하는 방법에 대한 튜토리얼입니다! Linux에서 컬 버전을 업데이트하는 방법에 대한 튜토리얼입니다! Mar 07, 2024 am 08:30 AM

Linux에서 컬 버전을 업데이트하려면 다음 단계를 따르세요. 현재 컬 버전을 확인하세요. 먼저 현재 시스템에 설치된 컬 버전을 확인해야 합니다. 터미널을 열고 다음 명령을 실행합니다. 컬 --version 이 명령은 현재 컬 버전 정보를 표시합니다. 사용 가능한 컬 버전 확인: 컬을 업데이트하기 전에 사용 가능한 최신 버전을 확인해야 합니다. 최신 버전의 컬을 찾으려면 컬의 공식 웹사이트(curl.haxx.se)나 관련 소프트웨어 소스를 방문하세요. 컬 소스 코드 다운로드: 컬 또는 브라우저를 사용하여 선택한 컬 버전의 소스 코드 파일(일반적으로 .tar.gz 또는 .tar.bz2)을 다운로드합니다.

pip 버전을 업데이트하는 간단한 단계: 1분 안에 완료 pip 버전을 업데이트하는 간단한 단계: 1분 안에 완료 Jan 27, 2024 am 09:45 AM

1분 안에 완료: pip 버전을 업데이트하려면 특정 코드 예제가 필요합니다. Python의 급속한 발전으로 pip는 Python 패키지 관리를 위한 표준 도구가 되었습니다. 그러나 시간이 지남에 따라 pip 버전은 지속적으로 업데이트됩니다. 최신 기능을 사용하고 가능한 보안 취약점을 수정하려면 pip 버전을 업데이트하는 것이 매우 중요합니다. 이 글에서는 1분 안에 pip를 빠르게 업데이트하는 방법을 소개하고 구체적인 코드 예시를 제공합니다. 먼저 명령줄 창을 열어야 합니다. Windows 시스템에서는 다음을 사용할 수 있습니다.

Kirin 운영 체제 버전과 커널 버전을 확인하세요. Kirin 운영 체제 버전과 커널 버전을 확인하세요. Feb 21, 2024 pm 07:04 PM

Kylin 운영 체제 버전 및 커널 버전 확인 Kirin 운영 체제에서 시스템 버전 및 커널 버전을 확인하는 방법을 아는 것은 시스템 관리 및 유지 관리의 기초입니다. Kylin 운영 체제 버전을 확인하는 방법 1: /etc/.kyinfo 파일을 사용하여 Kylin 운영 체제 버전을 확인하려면 /etc/.kyinfo 파일을 확인하세요. 이 파일에는 운영 체제 버전 정보가 포함되어 있습니다. 다음 명령을 실행합니다: cat/etc/.kyinfo 이 명령은 운영 체제의 자세한 버전 정보를 표시합니다. 방법 2: /etc/issue 파일 사용 운영 체제 버전을 확인하는 또 다른 방법은 /etc/issue 파일을 보는 것입니다. 이 파일은 버전 정보도 제공하지만 .kyinfo 파일만큼 좋지 않을 수 있습니다.

설치된 Oracle 버전을 쉽게 확인하는 방법 설치된 Oracle 버전을 쉽게 확인하는 방법 Mar 07, 2024 am 11:27 AM

설치된 Oracle 버전을 쉽게 확인하려면 특정 코드 예제가 필요합니다. 기업 수준의 데이터베이스 관리 시스템에서 널리 사용되는 소프트웨어로 Oracle 데이터베이스에는 다양한 버전과 설치 방법이 있습니다. 일상 업무에서 우리는 해당 운영 및 유지 관리를 위해 설치된 Oracle 데이터베이스 버전을 확인해야 하는 경우가 많습니다. 이번 글에서는 설치된 오라클 버전을 쉽게 확인하는 방법과 구체적인 코드 예시를 소개하겠습니다. 방법 1: Oracle 데이터베이스의 SQL 쿼리를 통해 다음을 수행할 수 있습니다.

PHP 버전 NTS의 의미와 차이점 해석 PHP 버전 NTS의 의미와 차이점 해석 Mar 27, 2024 am 11:48 AM

PHP 버전 NTS의 의미와 차이점 PHP는 웹 개발 분야에서 널리 사용되는 널리 사용되는 서버 측 스크립팅 언어입니다. PHP에는 ThreadSafe(TS)와 Non-ThreadSafe(NTS)라는 두 가지 주요 버전이 있습니다. PHP 공식 웹사이트에서는 PHPNTS와 PHPTS라는 두 가지 PHP 다운로드 버전을 볼 수 있습니다. 그렇다면 PHP 버전 NTS는 무엇을 의미합니까? TS버전과 차이점이 뭔가요? 다음,

대형모델간 75만 라운드 1대1 대결, GPT-4가 우승, 라마3가 5위 대형모델간 75만 라운드 1대1 대결, GPT-4가 우승, 라마3가 5위 Apr 23, 2024 pm 03:28 PM

Llama3에 대해 새로운 테스트 결과가 공개되었습니다. 대형 모델 평가 커뮤니티 LMSYS가 공개한 대형 모델 순위 목록에서 Llama3는 5위에 올랐으며, 영어 부문에서는 GPT-4와 함께 공동 1위를 차지했습니다. 다른 벤치마크와는 그림이 다릅니다. 이 목록은 모델 간 1:1 대결을 기반으로 하며, 네트워크 전체의 평가자들이 각자의 제안과 점수를 내립니다. 결국 Llama3가 5위를 차지했고, GPT-4와 Claude3 Super Cup Opus의 세 가지 버전이 그 뒤를 이었습니다. 영어 싱글 목록에서는 Llama3가 Claude를 제치고 GPT-4와 동점을 기록했습니다. 이 결과에 대해 Meta의 수석 과학자 LeCun은 매우 기뻐했으며 트윗을 통해 다음과 같이 말했습니다.

dp 인터페이스가 1.2인지 1.4인지 어떻게 알 수 있나요? dp 인터페이스가 1.2인지 1.4인지 어떻게 알 수 있나요? Feb 06, 2024 am 10:27 AM

DP 인터페이스는 컴퓨터를 사용할 때 DP 인터페이스가 1.2인지 1.4인지 확인하는 방법을 알고 싶어하는 중요한 인터페이스 케이블입니다. 실제로 GPU-Z에서만 확인하면 됩니다. dp 인터페이스가 1.2인지 1.4인지 확인하는 방법: 1. 먼저 GPU-Z에서 "Advanced(고급)"를 선택합니다. 2. "Advanced" 아래의 "General"에서 "Monitor1"을 보면 "LinkRate(현재)"와 "Lanes(현재)" 두 항목을 볼 수 있습니다. 3. 마지막으로 8.1Gbps×4가 표시되면 DP1.3 버전 이상을 의미하며, 일반적으로 5.4Gbps×4인 경우 DP1.4를 의미합니다.

Windows에 Python을 쉽게 설치하는 방법은 두 가지 방법 중에서 선택할 수 있습니다. Windows에 Python을 쉽게 설치하는 방법은 두 가지 방법 중에서 선택할 수 있습니다. Feb 18, 2024 pm 04:57 PM

파이썬이 왜 그렇게 인기가 있나요? 이유는 간단합니다. 배우기 쉽고, 사용하기 쉽고, 빠르게 시작할 수 있어 초보자에게 적합합니다. 프로젝트가 무엇이든 프로그래밍과 관련된 한 Python을 첫 번째로 선택하는 경우가 많습니다. 또한 Linux 시스템을 고수할 필요가 없으며 Windows에서도 잘 지원할 수 있습니다. Windows 11 운영 체제에 Python이 설치되어 있으며 이를 사용하여 프로그램을 작성하고 코드를 실행하는 경우가 많습니다. Windows에 Python을 설치하는 것은 매우 간단합니다. 다음에는 두 가지 일반적인 설치 방법을 공유하겠습니다. 적절한 Python 버전을 선택하십시오. Python은 여러 버전을 제공합니다. 이는 프로그램의 호환성 및 기능과 관련이 있습니다. 현재 버전에는 Python2 및

See all articles