Django 入門: 手続き型 Python Web フレームワークのチュートリアル

WBOY
リリース: 2023-06-22 10:06:40
オリジナル
853 人が閲覧しました

Django は、拡張性と柔軟性に優れたオープンソースの Python Web フレームワークです。 「Model-View-Controller (MVC)」設計パターンを採用し、Web アプリケーションの開発を迅速かつ効率的に行います。この記事では、初心者が Django を使いこなすために、Django の基礎知識、Django のインポートとインストール、データベースの作成、モデルの構築、ビューの作成について詳しく紹介します。

1. Django の基礎知識
Django の主なコンポーネントには、URL スケジューラ、テンプレート エンジン、ビュー、データベース アクセス層などが含まれます。 Django は複数のデータベースをサポートし、ORM (オブジェクト リレーショナル マッピング) ツールを使用してオブジェクト表現を提供し、データベースにアクセスします。 Apache、Nginx などの複数の Web サーバーを同時にサポートします。 Django は、管理バックエンド、フォーム処理、国際化、セキュリティと認証などの豊富な機能とコンポーネントも提供します。

2. Django のインポートとインストール
Django をインストールする前に、Python が正常にインストールされていることを確認する必要があります。 Django をインストールするには 2 つの方法があります。1 つは pip コマンドを使用する方法 (推奨)、もう 1 つは手動でダウンロードしてインストールする方法です。ここではpipのインストール方法を紹介します。

  1. 仮想環境の作成
    仮想環境は、さまざまなプロジェクトのさまざまな依存ライブラリを管理するのに役立ちます。まず、virtualenv というモジュールをインストールする必要があります。コマンド ラインに次のコマンドを入力してインストールします (pip がすでにインストールされている場合)。
pip install virtualenv
ログイン後にコピー

次に、次のコマンドを使用して新しい仮想環境を作成します。

virtualenv djangoenv
ログイン後にコピー

この例では、仮想環境の名前は djangoenv です。

  1. Django のインストール
    仮想環境で、次のコマンドを使用して Django をインストールします。
pip install Django
ログイン後にコピー

このコマンドは、最新バージョンを自動的にダウンロードし、仮想環境の site-packages ディレクトリにインストールします。

3. データベースを作成する
Django は、MySQL、PostgreSQL などの複数のデータベース システムをサポートしています。この記事では、デフォルトの SQLite データベースを使用します。 Python をインストールすると、SQLite がすでにインストールされています。

  1. プロジェクトの作成
    次のコマンドを使用して、新しい Django プロジェクトを作成します。
django-admin startproject mysite
ログイン後にコピー

この例では、プロジェクトの名前は mysite です。

  1. アプリケーションの作成
    Django アプリケーションは、モデル、ビュー、テンプレートで構成されます。ここではブログというアプリケーションを作成します。
cd mysite
python manage.py startapp blog
ログイン後にコピー

このコマンドは、プロジェクトのルート ディレクトリに blog という名前のディレクトリを作成します。
注: このコマンドはプロジェクトのルート ディレクトリで実行する必要があります。

  1. データベースの構成
    mysite/settings.py ファイルを開き、DATABASES を次のように設定します。
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
ログイン後にコピー

この設定では、データベースの種類を SQLite に設定し、名前を設定します。データベース ファイル db.sqlite3。 DATABASES 設定は、MySQL や PostgreSQL などの他のリレーショナル データベースもサポートします。

  1. 移行の実行
    Django は移行を使用して、データ モデルとデータベースの同期を管理します。次のコマンドを使用して初期移行を実行します。
python manage.py makemigrations
python manage.py migrate
ログイン後にコピー

このコマンドは、データベース ファイルを作成し、Django で使用されるすべてのアプリケーションのデータベース モデルを管理するために必要なテーブルを作成します。

4. モデルの構築
モデルは、データをデータベースにマッピングする際の重要な部分です。モデルを使用するには、データベース内のテーブルを定義するために使用される Python クラスを定義する必要があります。 Django の ORM はさまざまな種類のデータベースをサポートしていますが、便宜上、この記事では SQLite データベースを使用します。

  1. モデルの作成
    Python クラスを作成し、そのプロパティを定義します。このクラスは、アプリケーションのデータ モデルとして機能します。
from django.db import models

class Blog(models.Model):
    title = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    body = models.TextField()

    def __str__(self):
        return self.title
ログイン後にコピー
  1. モデルの移行
    モデルを作成した後、次のコマンドを実行してモデルをデータベースに移行する必要があります。
python manage.py makemigrations blog
python manage.py migrate
ログイン後にコピー

このコマンドは、定義したデータ モデルを含む新しいテーブルをデータベースに作成します。

5. ビューの作成
ビューは、ユーザーがアプリケーションと対話する部分です。ビューは、モデルからデータを取得し、その結果をユーザーのブラウザーにレンダリングする一連の関数です。 Django では、すべてのビューが HTTP 応答オブジェクトを返す必要があります。 Django には、一般的に使用されるビューの種類もいくつか用意されています。

  1. ビューの作成
    ファイル blog/views.py に次のビューを作成します。
from django.shortcuts import render
from django.http import HttpResponse
from .models import Blog

def index(request):
    latest_blog_list = Blog.objects.order_by('-pub_date')[:5]
    context = {'latest_blog_list': latest_blog_list}
    return render(request, 'blog/index.html', context)

def detail(request, blog_id):
    blog = Blog.objects.get(pk=blog_id)
    return render(request, 'blog/detail.html', {'blog': blog})
ログイン後にコピー

ここでは、インデックスと詳細という 2 つのビューが定義されています。インデックス ビューは、最新の 5 つのブログ投稿を取得し、それらを 1 つずつ HTML テンプレートにレンダリングします。詳細ビューはブログ投稿の詳細を取得し、HTML テンプレートにレンダリングします。

  1. テンプレートの作成
    定義したビューでは、index.html とdetail.html の 2 つの HTML テンプレートを使用しました。ブログ アプリケーションのルート ディレクトリに「templates」という名前のディレクトリを作成し、そのテンプレート ディレクトリの下に「blog」という名前のディレクトリを作成します。 「index.html」と「detail.html」という名前の 2 つの HTML ファイルをブログ ディレクトリに作成します。

index.html

{% if latest_blog_list %}
    <ul>
    {% for blog in latest_blog_list %}
        <li><a href="{% url 'blog:detail' blog.id %}">{{ blog.title }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No blogs are available.</p>
{% endif %}
ログイン後にコピー

detail.html

<h1>{{ blog.title }}</h1>
<p>{{ blog.body }}</p>
<p>Published on {{ blog.pub_date }}</p>
ログイン後にコピー
  1. 创建URL
    最后,我们要将视图与URL相关联。在blog应用程序的根目录下创建一个名为“urls.py”的文件,并添加以下内容。
from django.urls import path

from . import views

app_name = 'blog'
urlpatterns = [
    path('', views.index, name='index'),
    path('<int:blog_id>/', views.detail, name='detail'),
]
ログイン後にコピー

在这个文件中,我们使用URL配置了两个视图函数:index和detail。路径“/”定义了一个变量blog_id,并将其传递给detail视图函数。

六、启动服务器
现在我们已经定义了我们的Django应用程序,我们可以启动服务器并测试它是否正常工作了。在命令行中输入以下命令。

python manage.py runserver
ログイン後にコピー

如果一切正常,您将看到以下输出。

Performing system checks...

System check identified no issues (0 silenced).
September 18, 2021 - 18:13:35
Django version 3.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
ログイン後にコピー

现在您可以打开浏览器,并输入地址http://127.0.0.1:8000/blog/来访问您的Django网站。

七、总结
本文提供了一个Django入门指南,介绍了Django的基础知识,导入和安装Django,创建数据库,模型构建和视图创建等方面的内容。希望本文能够帮助初学者更好地理解Django,并在他们的Web开发项目中使用它。在Web开发的繁荣时代,Django无疑是一个强大的工具。

以上がDjango 入門: 手続き型 Python Web フレームワークのチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート