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
などのようなテーブルを生成するように、データベースファイルに適用された変更を、 。