、ORMの紹介
1、概念:ORM(オブジェクトリレーショナルMappingt)、オブジェクト・リレーショナル・マッピング
クラスとデータベース間のマッピング:2、本質的には、
3.利点:
開発者は、データベースを書きません
4.短所:
開発者は、データベースのスキル損失
クラス - > SQL文は、時間がかかり、効率が低下します
第二に、フィールド
1、一般的なフィールド
、のAutoField
int型の増分は、パラメータPRIMARY_KEY = Trueのではなく、このフィールドは自動的に作成された場合は、id列フィールドに入力する必要があります
B、IntegerFieldと
整数タイプ、範囲:〜-2147483648 2147483647
C、CharFieldです
VARCHAR()、パラメータフィールドが満たされなければならないMAX_LENGTH
D、DateFieldの
日付、datatimeモジュールdatatime.data()
字段:auto_now和auto_now_add
時間形式:YYYY-MM- DD
そして、DataTimeField
時間形式:YYYY-MM- DD HH:MM [:SS [.uuuuuu]] [TZ]、datatime.datatime
重要でないフィールド
BigAutoField(のAutoField) - BIGINTの自動インクリメント、あなたはパラメータを埋める必要があります= PRIMARY_KEY 真 SmallIntegerField(IntegerFieldと): - 32767〜小さな整数-32768 PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin、IntegerFieldと) -小さい正の整数32767〜0
PositiveIntegerField(PositiveIntegerRelDbTypeMixin、IntegerFieldと) - N 0〜2147483647整数 BigIntegerField(IntegerFieldと): -長い整数(符号付き)-9223372036854775808〜9223372036854775807 のBooleanField(フィールド) - ブール型 NullBooleanField(フィールド): - ブールnullにすることができる テキストフィールド(フィールド) - テキストタイプ EmailField (CharFieldですとして): - のModelForm設けられた文字列型、Djangoの管理および認証メカニズム IPAddressField(フィールド) - のModelForm設けられた文字列型、ジャンゴ管理IPv4および認証メカニズム GenericIPAddressField(フィールド) - 文字列型、Djangoの管理者は、認証とのModelForm IPv4とIPv6の提供 - パラメータ: プロトコルは、IPv4またはIPv6を指定' both- "、" IPv4の"、" IPv6の" unpack_ipv4、Trueを指定した場合、入力FFFF ::: 192.0.2.1 192.0.2.1に解決する場合、この機能をオンにする、あなたはに=議定必要がある" both- " URLField(CharFieldです) - 文字列型は、Djangoの管理のModelFormは、認証およびURL提供 (CharFieldですなど)SlugFieldを -文字列型は、ジャンゴのModelForm、管理、認証及びサポート文字、数字、下線、ハイフン(マイナス)を提供する (CharFieldですなど)CommaSeparatedIntegerField - カンマ区切りフォーマット番号である必要があり、文字列型を UUIDField(フィールド) - 文字列型、ジャンゴ管理者のModelFormとUUID形式の検証を提供 FilePathFieldは(フィールド)意志 - 文字列、Djangoの管理者が読むための機能を提供してのModelFormフォルダファイル - パラメータ: パス、フォルダパスの 一致 = なし、正規の一致 これは再帰的な = Falseのを、以下の再帰的なフォルダ allow_files = Trueの場合、ファイルができます allow_folders = Falseのは、フォルダを可能に FileFieldに(フィールド) - データベースに格納されている文字列パス、指定されたディレクトリにファイルをアップロード - パラメータを: upload_to = 「」 アップロードされたファイルを保存するパス ストレージ = なしストレージ・コンポーネントを、デフォルトdjango.core.files.storage.FileSystemStorage のImageField(FileFieldに) - データベースに格納されている文字列のパスは、指定されたディレクトリにファイルをアップロード - パラメータ: upload_to = 「」 パスをアップロードされたファイルを保存する ストレージ = なしストレージ・コンポーネントを、デフォルトdjango.core.files.storage.FileSystemStorage width_field = いずれも、非常に写真をアップロードしていませんデータベースフィールド名(文字列)に格納されている のheight_field =保存された幅なし写真データベースフィールド名(文字列) TimeField(DateTimeCheckMixin、フィールド) - 時刻形式HH:MM [:SS [.uuuuuu] DurationField(フィールド) - BIGINTに応じてデータベースに格納された長整数間隔、ORMはdatetime.timedeltaタイプを取得する FloatField(フィールド) - フロート DecimalFieldは(フィールド) - 10進バイナリ - :パラメータ max_digits、分数全長 decimal_places、小数ビット長 BinaryField(フィールド) - バイナリ型
char型のカスタムフィールド
クラスFixedCharField(models.Field): DEF __init__(セルフ、MAX_LENGTH、引数*、** kwargsから): スーパー()__init__(MAX_LENGTH = MAX_LENGTH、引数*、** kwargsから) self.length = MAX_LENGTH DEFのDB_TYPE(セルフ、接続): #1 フィールドタイプがcharとして定義されたデータベーステーブルを生成し、長さの長さの値が指定された リターン 「CHAR(%S)」%self.lengthの クラスのクラス(models.Model): #カスタムフィールドタイプチャー使用 名を= FixedCharField(MAX_LENGTH = 25)
第三に、フィールドパラメータ
1、ヌル
NULL、NULL =真
2、ユニーク
インデックスのみをTrue =ユニーク含まれてい
3、db_index
db_index =真:インデックスを含むインデックス
4、デフォルト
既定値に設定
5、差auto_now_addとauto_now
、両方の真のすることはできません
auto_now_add更新データ作成後にB、時間
更新時間cは、atuo_nowデータを変更します
注意:日付フィールドとDateTimeField型auto_now_addパラメータフィールドは、特定の値を提供する必要がありません
第四に、関係フィールド
1、外部キー(通常は会社が使用されません)
フィールド:ForeignKeyの
フィールドパラメータ
、へ
関連していると、テーブルを設定します
B、to_field(一般的にしないでください)
関連するテーブルのフィールドを設定し、そして以前に使用します
C、db_constraint
また、ソフトな制約た場合、外部キーなしでソフトな制約、db_constraint = Falseを、平均会社を設定します。
D、on_delete
あなたがテーブルを関連付けられているデータを削除すると、現在のテーブルの行の動作は、それに関連付けられています。
models.CASCADEは、
関連するデータを削除し、関連削除
models.DO_NOTHINGが
エラーIntegrityError引き起こし、関連するデータを削除
models.PROTECTが
エラーProtectedError引き起こし、関連するデータを削除
models.SET_NULLに
関連するデータを削除し、関連付けられた値がNULLに設定されている(FK構内フィールドは空に設定する必要がある)
models.SET_DEFAULT
関連するデータを削除し、デフォルト値(FKフィールドがデフォルト値を設定するために提供される)に関連付けられた値
models.SET
関連削除データ、
指定された値に関連付けられている。値提供:models.SET(値)
。戻り値として設定されたB値関連付けられた実行可能オブジェクトが提供される:models.SET(実行可能なオブジェクト)
注意:Django2書くon_delete = models.CASCADE
2、1の1
一つのテーブルに二つのテーブル、クエリ周波数サブテーブルの利点
フィールド:OneToOneField
パラメータ:
、へ
B、to_field
C、on_delete
3、多くの
フィールド:のManyToManyField
フィールドパラメータ:へ
第五に、メタ情報
フィールドのメタクラス:メタ
index_together
共同インデックス
unique_together
ユナイテッド一意のインデックス