ホームページ  >  記事  >  バックエンド開発  >  Django フレームワークのモデルの詳細な説明

Django フレームワークのモデルの詳細な説明

WBOY
WBOYオリジナル
2023-06-17 08:48:262296ブラウズ

Django は、オープン ソースの Python Web フレームワークであり、MVT (モデル-ビュー-テンプレート) アーキテクチャ パターンを採用し、アプリケーションをモデル、ビュー、テンプレートの 3 つの部分に分割します。その中で、Model は Django フレームワークの基本コンポーネントであり、データの定義と管理に使用されます。この記事では、Django フレームワークの Model について詳しく説明します。

  1. モデルとは

Django フレームワークでは、モデルはデータの定義、カプセル化、保存、管理を担当するコンポーネントです。モデルは主に Python クラスの形式で定義され、各モデルはデータベース テーブルを表します。たとえば、ユーザー管理アプリケーションを作成したい場合、User という名前のモデルを作成できます。それに対応するデータベース テーブルは user という名前のテーブルです。

モデルでは、テーブルのフィールドを定義できます。これらのフィールドには、整数、文字列、日付などを指定できます。各フィールドはテーブル内の列に対応します。さらに、データを操作および管理するためのいくつかのメソッドとプロパティを定義することもできます。

  1. モデルの命名規則

Django のモデルの命名規則は比較的単純で、Python の命名規則に従っています。モデルのクラス名は大文字で始まり、キャメル ケースで名前を付ける必要があります。例:

class MyModel(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()
  1. Model のフィールド タイプ

Django フレームワークでは、Modelテーブル内の列を表すために使用される一連のフィールド タイプを定義します。 Django のフィールド タイプには次のものがあります:

  • CharField: 文字列型;
  • IntegerField: 整数型;
  • BooleanField: ブール型;
  • DecimalField: 10 進浮動小数点数型;
  • DateField: 日付型;
  • DateTimeField: 日付時刻型;
  • TextField: 長いテキスト型。

上記の基本型に加えて、Django は、ArrayField、ForeignKey、OneToOneField など、テーブル内の列をより詳細に記述することができる他の多くの型もサポートしています。

  1. モデルのフィールド オプション

Django では、各フィールドの種類に、各フィールドの特性を詳しく説明するいくつかのオプションがあります。たとえば、CharField 型には、最大長、NULL 可能性、デフォルト値などを指定するためのオプションがあります。これらのオプションには、フィールドの定義時に値を割り当てることができます (例:

class MyModel(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField(default=0)

)。この例では、名前フィールドのタイプは CharField、最大長は 50、年齢フィールドのタイプはデフォルトの IntegerField です。値は0です。

  1. モデルのメタ クラス

各モデル クラスは、モデルをさらに構成するためのメタ クラスを定義できます。たとえば、モデルの並べ替え方法、使用するデータ テーブルの名前、他のモデルとの関係などを指定できます。一般的な使用法は、管理バックグラウンドで使用されるデータ テーブル名とモデルの詳細名を指定することです。

class MyModel(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()

    class Meta:
        db_table = 'my_model'
        verbose_name = "我的模型"
        verbose_name_plural = "我的模型集合"

この例では、db_table オプションを使用してデータ テーブルの名前を my_model として指定し、verbose_name オプションを使用してモデルの中国語名を「my model」として指定し、verbose_name_plural オプションを使用します。対応する複数の中国語名を指定します。名前は「My Model Collection」です。

  1. Model のメソッドとプロパティ

Model では、フィールドの定義に加えて、データを操作および管理するためのメソッドとプロパティを定義することもできます。たとえば、ユーザーの年齢グループを取得するメソッドを定義できます。

class User(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()

    def get_age_range(self):
        if 0 <= self.age < 18:
            return "未成年"
        elif 18 <= self.age < 30:
            return "青年"
        elif 30 <= self.age < 50:
            return "中年"
        else:
            return "老年"

このメソッドは、ユーザーの年齢に基づいて、ユーザーの年齢グループを示す文字列を返すことができます。これは、ビジネス ロジックで使用するのに便利です。 。さらに、モデルに関する情報を迅速に取得するためにいくつかの属性を定義することもできます。例:

class MyModel(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()

    @property
    def full_name(self):
        return "{}{}".format(self.name, self.age)

この例では、MyModel オブジェクトの名前と年齢で構成される文字列を返す full_name 属性を定義します。

  1. モデルの管理バックエンド

Django フレームワークは、モデルの追加、削除、変更、確認に使用できる、自動生成された管理バックエンドを提供します。各モデルの管理バックエンドを作成するには、model/admin.py ファイル内で関連する構成を行うだけです。

from django.contrib import admin
from .models import MyModel

admin.site.register(MyModel)

この例では、admin.site.register() 関数を使用して MyModel を管理バックグラウンドに登録し、MyModel を管理バックグラウンドで操作できるようにします。

要約すると、Django フレームワークのモデルはデータを定義および管理するための重要なコンポーネントであり、データを便利に操作し、完全なアプリケーションを迅速に構築するのに役立ちます。この記事を学ぶことで、Django フレームワークの Model のさまざまな機能をより深く理解でき、開発をより効率的に行うことができます。

以上がDjango フレームワークのモデルの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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