Django は Python で書かれた Web フレームワークであり、その主な特徴は、迅速な開発、容易な拡張、高い再利用性などです。 2005 年に初めてリリースされて以来、Django は強力な Web 開発フレームワークに成長しました。
時間の経過とともに、Django のバージョンは常に更新されます。この記事では、Django のバージョンの進化、1.x から 3.x への変更点を深く理解し、新機能、改善点、注意が必要な変更点を紹介し、詳細なコード例を示します。
- Django 1.x バージョン
Django 1.x バージョンは、1.0.1 から 1.11.29 までを含む Django の初期バージョンです。このバージョンの 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 という 3 つのデータ モデルを定義しました。これらはすべて models.Model から継承しています。これらのクラスの属性は、データベース テーブルのフィールドに対応します。たとえば、Blog クラスには、name と tagline という 2 つのフィールドがあり、それぞれ文字列型のブログ名とスローガンを格納するために使用されます。データ モデルを定義する際、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 バージョンの管理者バックグラウンド管理システムには、管理サイトの自動生成、データ モデルの管理、カスタマイズされたリスト、フィルター、フォームの表示など、多くの基本機能がすでに備わっています。
- Django 2.x バージョン
Django 2.x バージョンには 2.0.0 から 2.2.24 が含まれており、Django にいくつかの大きな改良が加えられています。
a. ASGI の導入
Django 2.x バージョンでは、ASGI (Asynchronous Server Gateway Interface) プロトコルが導入されました。 ASGI は非同期 Web サーバー用に設計されたプロトコルで、開発者はこれを使用して非同期 Web アプリケーションを作成できます。このようにして、WebSocket、リアルタイム通信、時間のかかるタスクなどの非同期プログラミングのニーズをより適切に満たすことができます。
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 を使用して単純な Web アプリケーションを作成します。まず、スコープ、受信、送信の 3 つのパラメーターを受け入れるアプリケーションの非同期関数を定義します。これらのパラメータは固定されており、ASGI プロトコルによって合意されています。このうち、スコープはリクエストのタイプ、パス、クエリ文字列などを含むリクエストのコンテキストを表し、受信はリクエストの受信方法、リクエストヘッダー、応答コードなどを表す辞書の構築を表し、送信はリクエストの内容を表します。クライアントに応答を返します。
b. Python 2.x 互換性の削除
Django 2.x バージョンでは、Python 2.x 互換性が削除され、サードパーティ ライブラリの Python はサポートされなくなりました。 .x バージョン。これは、開発者が Django アプリケーションを開発するには Python 3.x を使用する必要があることを意味します。
さらに、Django 2.x バージョンでは、次のような他の改善と最適化も行われています。
- 新しい HTTP ステータス コードと例外を追加しました。
- 追加より優れたパスワード セキュリティ メカニズム;
- より優れたテストをサポートし、新しいテスト フレームワークを導入します。
- Django 3.x バージョン
Django 3.x バージョンは、3.0.0 から 3.2.5 までを含む現在の最新バージョンです。バージョン 2.x をベースに機能とパフォーマンスがさらに強化されています。
a. パス パラメーターのサポート
Django 3.x バージョンでは、パス コンバーター、つまりパス パラメーターのサポートが導入されました。この新機能は、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 リクエストのサポートを追加しました;
この記事の概要Django1.x から Django 3.x への進化の変化について説明します。これらの変更により、パフォーマンスが向上し、開発効率が向上し、使いやすさが向上します。 MVC フレームワークとして、Django はますます完成度が高まっていくと思います。
以上がDjango バージョンの進化: 1.x から 3.x へ、新機能と改善点について学びますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
