ホームページ  >  記事  >  バックエンド開発  >  Python と Django を使用した Web アプリケーションの構築: 実践的なガイド

Python と Django を使用した Web アプリケーションの構築: 実践的なガイド

王林
王林オリジナル
2023-06-22 17:51:301383ブラウズ

Python は、学習が容易で可読性が高く、広く使用されているという利点を持つ人気のプログラミング言語であり、Web 開発、データ サイエンス、機械学習などの分野で広く使用されています。中でもDjangoはPython言語をベースに開発された高度なWebフレームワークであり、Webアプリケーション開発にとって重要なツールです。

Django は、学習しやすく、保守しやすく、MVC パターンに従っており、独自の ORM が付属しているという利点を特徴としており、開発者の間で人気があります。この記事では、Python と Django を使用して Web アプリケーションを構築するための実践的なガイドを提供します。

  1. Python と Django のインストール

まず、Python と Django をインストールする必要があります。最新の Python インストール パッケージは、Python の公式 Web サイト (www.python.org) からダウンロードできます。インストール後、コマンド ラインに python と入力して、Python が正しくインストールされているかどうかを確認できます。

Django のインストールは、pip パッケージ マネージャーを通じてインストールできます。コマンド ライン ウィンドウを開き、次のコマンドを入力します:

pip install django

インストールが完了したら、Django が正しくインストールされているかどうかを確認できます。次のコマンド:

django-admin --version

Django のバージョン番号が返されれば、インストールは成功です。

  1. Django プロジェクトの作成

コマンド ラインで、Django プロジェクトを保存するディレクトリを入力し、次のコマンドを入力します:

django-admin startproject myproject

このコマンドは、「myproject」という名前の Django プロジェクトは次のプロジェクト ディレクトリ構造を持っています:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        wsgi.py

このうち、manage.py はコマンド ラインで Django タスクを実行するために使用されるスクリプト ファイルです。 .py にはプロジェクト設定が含まれ、urls.py にはプロジェクトの URL パターンが含まれ、wsgi.py には Web サーバーがリクエストを転送する Python アプリケーションを指定します。

  1. Django アプリケーションを作成する

Django プロジェクトでは、アプリケーションとは、Web アプリケーションと特定のビジネス ロジックを組み合わせるコンポーネントを指します。次のコマンドを使用して、作成された Django プロジェクトにアプリケーションを作成できます。

python manage.py startapp myapp

このコマンドは、Django プロジェクトのアプリケーション ディレクトリの "myproject" ディレクトリに "myapp" という名前のアプリケーションを作成します。構造は次のとおりです。 :

myapp/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py

このうち、models.py にはアプリケーションのデータベース モデル定義が含まれ、views.py にはリクエスト処理関数が含まれ、admin.py はバックグラウンドの管理に使用され、tests.py には次のテスト コードが含まれます。アプリケーション。

  1. Django モデルの作成

Django の ORM は、Python クラスをデータベース テーブルにマップするツールです。models.py ファイルを編集することで、アプリケーションのモデルを定義できます。

たとえば、次の属性を含む「Book」という名前のモデルを作成します。

  • title: 文字列型、最大長は 200 文字
  • author (著者): 文字列型、最大長は 50 文字
  • pub_date (発行日)​​: 日付型
  • price (価格): 10 進数型、最大値は 9999.99、小数点以下は場所は 2 か所です

コードは次のとおりです:

from django.db import models


class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=50)
    pub_date = models.DateField()
    price = models.DecimalField(max_digits=5, decimal_places=2, max_value=9999.99)
  1. データベース テーブルの作成

Django では、データベース テーブルは以下から自動的に作成されます。モデル。次のコマンドを使用して、データベースにモデルを作成できます。

python manage.py makemigrations myapp

このコマンドは、モデルをデータベース テーブルにマップする方法を記述したデータベース移行ファイルを作成します。次のコマンドを使用して、データベースに移行を適用できます:

python manage.py migrate

このコマンドは、移行ファイルの指示に従ってデータベースにテーブルを作成します。

  1. ビューの作成

Django では、ビューはリクエスト処理関数であり、ユーザーが開始したリクエストを処理し、応答コンテンツを生成する役割を果たします。ビューを作成する前に、リクエストをビューに関連付ける URL パターンを構成する必要があります。 urls.py ファイルを編集して、次のコードを追加できます。

from django.urls import path
from . import views

urlpatterns = [
    path('books/', views.book_list, name='book_list'),
    path('books/new', views.book_new, name='book_new'),
    path('books/<int:pk>/edit/', views.book_edit, name='book_edit'),
    path('books/<int:pk>/delete/', views.book_delete, name='book_delete'),
]

このコード スニペットは、4 つのビューに関連付けられた 4 つの URL パターンを定義します。このうち、path 関数の最初のパラメータは URL を指定し、2 番目のパラメータはビュー関数を指定し、3 番目のパラメータはビューを HTML にレンダリングするときのテンプレート エンジンの名前です。

views.py ファイルでは、次のようなリクエスト処理関数を定義できます:

from django.shortcuts import render, get_object_or_404
from .models import Book
from .forms import BookForm

def book_list(request):
    books = Book.objects.all()
    return render(request, 'book_list.html', {'books': books})

def book_new(request):
    if request.method == "POST":
        form = BookForm(request.POST)
        if form.is_valid():
            book = form.save(commit=False)
            book.save()
            return redirect('book_list')
    else:
        form = BookForm()
    return render(request, 'book_edit.html', {'form': form})

def book_edit(request, pk):
    book = get_object_or_404(Book, pk=pk)
    if request.method == "POST":
        form = BookForm(request.POST, instance=book)
        if form.is_valid():
            book = form.save(commit=False)
            book.save()
            return redirect('book_list')
    else:
        form = BookForm(instance=book)
    return render(request, 'book_edit.html', {'form': form})

def book_delete(request, pk):
    book = get_object_or_404(Book, pk=pk)
    book.delete()
    return redirect('book_list')

その中で、book_list 関数はすべての書籍のリストを返すために使用され、book_new 関数は新しいブックの作成に使用され、book_edit 関数は既存のブックの編集に使用され、book_delete 関数はブックの削除に使用されます。

  1. HTML テンプレートの作成

Django では、テンプレート エンジンを使用してビュー関数を HTML ページにレンダリングし、それによって視覚的な Web インターフェイスをユーザーに表示できます。テンプレート ディレクトリに book_list.html などの HTML テンプレート ファイルを作成できます。

コードは次のとおりです:

{% extends 'base.html' %}

{% block content %}
  <h1>Books</h1>
  <a href="{% url 'book_new' %}">New book</a>
  <table>
    <thead>
      <tr>
        <th>Title</th>
        <th>Author</th>
        <th>Pub date</th>
        <th>Price</th>
        <th>Actions</th>
      </tr>
    </thead>
    <tbody>
      {% for book in books %}
        <tr>
          <td>{{ book.title }}</td>
          <td>{{ book.author }}</td>
          <td>{{ book.pub_date }}</td>
          <td>{{ book.price }}</td>
          <td>
            <a href="{% url 'book_edit' book.id %}">Edit</a>
            <a href="{% url 'book_delete' book.id %}">Delete</a>
          </td>
        </tr>
      {% endfor %}
    </tbody>
  </table>
{% endblock %}

その中で、{% extends 'base.html' %} は、このテンプレートがbase.html テンプレートから継承することを指定します; {% block content %} to {% endblock %} このテンプレートのメイン コンテンツが、テンプレート内に含まれるコンテンツであることを指定します。

Django サーバーを実行し、ブラウザで localhost:8000/books/ を開いてすべての書籍のリストを表示します。

この簡単な例を通じて、Python と Django を使用して Web アプリケーションを構築する方法を学び、Python と Django のインストール、Django プロジェクトとアプリケーションの作成、Django モデル、ビュー、テンプレートの作成などの基本的な操作を学びました。このガイドが独自の Web アプリケーションの構築に役立つことを願っています。

以上がPython と Django を使用した Web アプリケーションの構築: 実践的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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