14.ジャンゴMTVとDjangoモデル

MTV

私たちは、MVCパターンについて聞いたことがあります。サービス・ロジック、データ、単離された組織インターフェース表示方法コードと略称コントローラ(コントローラ)、及びソフトウェア設計モデル - ビュー(ビュー) - MVCモデル(モデル)です。Djangoはまた、我々はMTVを呼び出し、そのデザインパターンを持っています。

  • Mは、モデル(モデル)、すなわち、データアクセス層を表します。この層は、データに関連するすべてのトランザクションを処理します
  • Tは、テンプレート(テンプレート)、すなわち、プレゼンテーション層を表します。HTMLなど
  • Vはビュー(ビュー)、即ち、ビジネスロジック層を表します。私たちは、ローカルビジネスコードを記述します。

Djangoのモデル

私たちの最初のプロジェクトを実行し、データベースの操作を伴わなかった場合には、我々は、テーブルを作成する場合は、その後、どのように動作しますか?私たちは、以下の記事/ models.pyで動作することができます。一部の学生はPythonのファイルをしませmodels.pyの、と言うかもしれませんか?なぜならジャンゴの特殊な性質のため、データベースを行うには何も持っているので、我々は(ORMは、オブジェクト関係マッピング)、オブジェクト・リレーショナル・マッピングを使用することができ、簡単に操作データベース操作の形式は、その後、どのようにそれが動作しないことを意味?我々はまだ、そのブログのタイトル、著者、記事の内容を持つテーブルがあるとし、例に挙げたブログを使っ構成公開し、その後、どのように我々はそれ以下のジャンゴ内のデータテーブルを生成するのですか?私たちは、開かれた記事/ models.pyファイルには、次のコードを入力します。

from django.db import models


# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length=10, ) # 标题
    author = models.CharField(max_length=10) # 作者
    content = models.CharField(max_length=500) # 内容

条私たちは四つのフィールド定義され、models.Modelを継承するクラスを作成します。次の表に、タイトル、著者、コンテンツdate_publish、CharFieldです、DateTimeField型は、これら2つに加えて、フィールドのタイプで、ジャンゴ、他の多くのデータ型を:

タイプ 説明
オートフィールド デジタルタイプの整数を格納します。
BooleanField データを格納するためのブールタイプ(トゥーレまたはFalse)
CharFieldです 文字データを格納するために、長さのmax_lengthを指定する必要があります。
CommaSeparatedIntegerField カンマで区切られた整数型のデータが格納されています。
DateFieldに 日付タイプは、 "YYYY-MM-DD" 形式でなければなりません
DateTimeField型 形式日付と時刻タイプは、 "::MM [SS [.uuuuuu]] [TZ] YYYY-MM-DD HH" でなければなりません。
DecimalFieldは 小数を格納するdecimal型。
EmailField Eメールのタイプ
FilePathField クラスファイルのパスの種類、FilePathFieldsは「allow_files」またはTrueに設定」allow_foldersのいずれかを持っている必要があります。
FloatField フロート。浮動小数点データを格納します。
IntegerFieldと デジタルタイプの整数を格納します。
BigIntegerField デジタルの大きな整数型を格納するために使用され、サポートの最大数:9223372036854775807
GenericIPAddressField IPアドレスタイプはIPv4、およびIPv6アドレスを格納し、フォーマット文字列。
NullBooleanField vlaueはNone、TrueまたはFalseのいずれかである必要があります。
PositiveIntegerField 正の整数
PositiveSmallIntegerField 正の小さな整数
SlugField MAX_LENGTHは、値を定義する必要があります。
SmallIntegerField 小さな整数
テキストフィールド テキストデータ型を格納します。
TimeField タイムタイプ。"HH:MM [:SS [.uuuuuu]" フォーマット
URLField URLアドレスを格納するために使用されます
BinaryField 生のバイナリデータ

しかし、今の記事だけではなくクラスのテーブルであるので、我々は、次の2つのコマンドを実行し、データベースの移行を実行する必要が

F:\新建文件夹\blog>python manage.py makemigrations article
Migrations for 'article':
  article\migrations\0001_initial.py
    - Create model Article

F:\新建文件夹\blog>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, article, auth, contenttypes, sessions
Running migrations:
  No migrations to apply.

python manage.py makemigrations articleこのアプリに移行ディレクトリを確立するために、等価、および、そのような0001_initial.pyなどの記録のmodes.py上のすべての変更、が、この変更はデータベースファイルに適用されていない
python manage.py migrateなどのようなテーブルを生成するように、データベースファイルに適用された変更を、 。

おすすめ

転載: www.cnblogs.com/suim1218/p/11009582.html