モデルフィールドとフィールドパラメータ

、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

ユナイテッド一意のインデックス

おすすめ

転載: www.cnblogs.com/wt7018/p/11261282.html