ホームページ バックエンド開発 Python チュートリアル Django のアーキテクチャを理解する: MTV パターン。

Django のアーキテクチャを理解する: MTV パターン。

Oct 18, 2024 pm 08:16 PM

Understanding Django’s Architecture: The MTV Pattern.

Django は、Web 開発の MTV (Model-Template-View) パターンに従います。各コンポーネントの内訳は次のとおりです:

モデル: データ構造を定義し、データベースとの対話を処理することで、SQL クエリを手動で作成せずにデータの保存と取得を可能にします。

テンプレート: HTML のレンダリングとユーザーへのデータの表示を担当します。動的コンテンツを表示するには、Django テンプレート言語 (DTL) と混合した HTML を作成します。

ビュー: ビジネス ロジック層として機能します。モデルとテンプレートを接続し、ユーザーのリクエストを処理し、モデルと対話して、応答 (多くの場合、テンプレートからレンダリングされた HTML) を返します。

Django のリクエストとレスポンスのサイクルの仕組み:

  • ユーザーが (URL 経由で) Web ページをリクエストします。
  • Django は URL をビューと照合します。
  • ビューはモデルからデータを取得し、それをテンプレートに渡します。
  • テンプレートはデータを HTML にレンダリングし、それを応答としてユーザーに送り返します。

ステップ 1: Django で新しいアプリを作成します.
(前の記事で説明したように) Django をセットアップしたら、プロジェクトに新しいアプリを作成しましょう。

次のコマンドを実行します:

cd mysite
python3 manage.py startapp core
ログイン後にコピー
ログイン後にコピー

これにより、mysite プロジェクト内に core という名前のアプリが作成されます。ファイル構造は次のようになります:

.
├── core
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mysite
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
ログイン後にコピー
ログイン後にコピー

ステップ 2: アプリを設定ファイルに登録します.
Django に新しいアプリを認識させるには、mysite/settings.py の INSTALLED_APPS にそのアプリを追加する必要があります:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core',  # add this line
]
ログイン後にコピー

ステップ 3: 基本ビューを作成する.
「Hello, World!」を返す単純なビューを作成してみましょう。メッセージ。

コア アプリ内で views.py を開き、次のコードを追加します:

from django.http import HttpResponse

def learn(request):
    return HttpResponse("Hello, World!")
ログイン後にコピー

ステップ 4: URL をビューにマップします.
URL 経由でこのビューにアクセスするには、core/urls.py ファイルでマップする必要があります。このファイルが存在しない場合は作成し、以下を追加します:

from django.urls import path
from . import views

urlpatterns = [
    path('learn/', views.learn, name='learn'),
]
ログイン後にコピー

次に、メインの mysite/urls.py ファイルにコア アプリの URL を含めます。

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('core/', include('core.urls')),  # include the core app URLs
]

ログイン後にコピー

ここで、サーバーを実行して http://127.0.0.1:8000/core/learn/ にアクセスすると、「Hello, World!」が表示されるはずです。表示されます。
ステップ 5: テンプレートを作成してレンダリングする

from django.shortcuts import render

def learn(request):
    context = {'name': 'Django'}
    return render(request, 'hello.html', context)

ログイン後にコピー

このビューは変数 (名前) を hello.html というテンプレートに渡します。
ステップ 6: テンプレート ディレクトリと HTML ファイルを作成します.
コア アプリで、テンプレート フォルダーと hello.html ファイルを作成します。

mkdir core/templates
touch core/templates/hello.html
ログイン後にコピー

hello.html 内に次の HTML コードを追加します

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello Template</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>
ログイン後にコピー

学習 URL に再度アクセスすると、「Hello, Django!」と表示されるはずです。ブラウザで。

ステップ 7: 基本モデルを作成する.
ブログ投稿を保存するための単純な Post モデルを作成しましょう。

core/models.py に次のコードを追加します:

cd mysite
python3 manage.py startapp core
ログイン後にコピー
ログイン後にコピー

このポストモデルには、タイトルとコンテンツという 2 つのフィールドがあります。 __str__ メソッドは、Django 管理者またはシェルで Post オブジェクトがタイトルとともに表示されるようにします

ステップ 8: モデルをデータベースに適用する.
データベースに対応するテーブルを作成するには、次のコマンドを実行します:

.
├── core
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mysite
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
ログイン後にコピー
ログイン後にコピー

Django は Post モデルのデータベース テーブルを作成します。

これらの手順に従うことで、モデル、ビュー、テンプレートを備えた基本的な Django アプリが正常に作成されました。ユーザー入力の処理、デザインの改善、アプリのインタラクティブ化などの機能を追加することで、この基盤を拡張できるようになりました。

以上がDjango のアーキテクチャを理解する: MTV パターン。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLを解析するために美しいスープを使用するにはどうすればよいですか? HTMLを解析するために美しいスープを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:54 PM

HTMLを解析するために美しいスープを使用するにはどうすればよいですか?

Pythonでの画像フィルタリング Pythonでの画像フィルタリング Mar 03, 2025 am 09:44 AM

Pythonでの画像フィルタリング

Pythonでファイルをダウンロードする方法 Pythonでファイルをダウンロードする方法 Mar 01, 2025 am 10:03 AM

Pythonでファイルをダウンロードする方法

Pythonを使用してテキストファイルのZIPF配布を見つける方法 Pythonを使用してテキストファイルのZIPF配布を見つける方法 Mar 05, 2025 am 09:58 AM

Pythonを使用してテキストファイルのZIPF配布を見つける方法

Pythonを使用してPDFドキュメントの操作方法 Pythonを使用してPDFドキュメントの操作方法 Mar 02, 2025 am 09:54 AM

Pythonを使用してPDFドキュメントの操作方法

DjangoアプリケーションでRedisを使用してキャッシュする方法 DjangoアプリケーションでRedisを使用してキャッシュする方法 Mar 02, 2025 am 10:10 AM

DjangoアプリケーションでRedisを使用してキャッシュする方法

TensorflowまたはPytorchで深い学習を実行する方法は? TensorflowまたはPytorchで深い学習を実行する方法は? Mar 10, 2025 pm 06:52 PM

TensorflowまたはPytorchで深い学習を実行する方法は?

Natural Language Toolkit(NLTK)の紹介 Natural Language Toolkit(NLTK)の紹介 Mar 01, 2025 am 10:05 AM

Natural Language Toolkit(NLTK)の紹介

See all articles