ジャンゴ1つのクエリ、ORMの列の型と列パラメータ

一つのクエリ

テーブルを作成します。

コードをコピー
#通过OneToOneField创建一对一的关系
django.db輸入モデルから

#ここにあなたのモデルを作成します。
クラスStaffInfo(models.Model):
    名前= models.CharField(max_lengthを= 32、ヌル=真)
    年齢= models.CharField(max_lengthを= 32、ヌル=真)

クラスの給与(models.Model):
    お金= models.CharField( MAX_LENGTH = 32、ヌル=真)
    スタッフ= models.OneToOneField( "StaffInfo")
コードをコピー

CRUD

コードをコピー
#正常な成長として
    models.StaffInfo.objects.create(=名"XXX"、年齢= 12である)
    models.Salary.objects.create(金= 3000、staff_id = 2)
の外部キーを繰り返し添加する場合は、1つに関連付けられた#文句を言う、そのDjangoは、私たちがユニークインデックス作るのを助けただろう

#を削除し、普通は同じである
    models.Salary.objects.filter(staff_id = 2).Delete() にも削除をカスケード接続する問題を持っている、あなたはon_deleteすることができますカスケードの値が削除、変更、キャンセル

、あまりにも、#改革と通常の
    models.Salary.objects.filter(staff_id = 2).Update(マネー= 2000)

2種類の正のチェックとは対照的に#チェック
    #外部キー名のクロスポイントテーブルによって確認されていますテーブルクエリrow.staff.name 
        RES = models.Salary.objects.all()
        RESの行のために:
            プリント(row.money、row.staff.name)
    クロステーブルの関連テーブルを示す小文字の間のコントラストの#ポイントがrow.salaryを照会.money 
        RES = models.StaffInfo.objects.all()
        RESの行のための:
            印刷(row.name、row.salary.money)
コードをコピー

列タイプ

主に列タイプの比較ビューを介しMySQLと我々でDjangoの列タイプ

コードをコピー
"" " 
            MySQLのジャンゴカラム型カラム型
              全くTINYINT 
              SMALLINT(符号なし)SmallIntegerField(PositiveSmallIntegerField)
デジタルint型(符号なし)IntegerFieldと(PositiveSmallIntegerField)は
              全くMEDIUMINTない
              BIGINTを(符号なし)BigIntegerField(PositiveBigIntegerField)
              
              フロートFloatFieldの
              画分2を表す小数(5,2) 5 DecimalFieldは用のビット、最大長

              チャーなし
VarCharField列型VARCHARの
              テキストのTextField 
              
時間datetime型(2019年7月1日。1 :. 1 :. 1)DateTimeField型の
              DATE(2019年7月1日)のDateField 
"" "
コードをコピー

パラメータ

コードをコピー
「」「
MAX_LENGTH最大長

nullは空である

デフォルト値は、デフォルト

do_index通常指標添加する

UNIQUEは一意のインデックスを追加

関節一意のインデックスunique_together 
インデックス内index_together一意のインデックスは、メタクラスに合わせ、これらの2つに必要
:クラスメタ
    unique_together =(
        フィールド1」(」 "フィールド2")、
        ...... 
    index_together =( "フィールド1"、 "フィールド2")、
        ...... 
"" "
コードをコピー

ジャンゴ管理者

ジャンゴジャンゴ管理者、主に当社が提供するバックエンド管理システムに、我々は内部のCRUDデータすることができます

1、ジャンゴ管理者を開く方法

urlpatterns = [ 
    URL(R '^管理/'、admin.site.urls)、
]

  私たちは次のようにプロジェクトを作成するときにRUIがジャンゴ-adminと入力して、ブラウザに対応するURLを入力して自動的に生成されます

2.ユーザーを作成します。

「」「
:ターミナルおよびタイプ
    のPython manage.py createsuperuserは、

ユーザー名Eメール(書き込みません)パスワードを入力してください
「」」

3、生成された自身のテーブルを管理したいです

  アプリのadmin.pyに対応する自分のファイルに登録する必要があります

app02輸入モデルから

admin.site.register(models.Student)
admin.site.register(models.Teacher)

図4に示すように、パラメータタイプ列のジャンゴ管理者

  ジャンゴ管理者の管理、バックグラウンドでの作業、以下のタイプのみ

コードをコピー
「」「
カラム型のフロントでは、括弧の中に、私たちはデータベースの種類から見る
EmailField(CharFieldです)
    この文字列を入力する文字列型、adminとのModelForm有効なメールではありません
IPAddressField(フィールド)
    文字列型と管理ModelFormサブクラス入力する認証用IPV4 
GenericIpAddressField(フィールド)
    文字列タイプがIPv4とIPv6の認証入力するために使用される
    パラメータは:
        プロトコルはIPv4またはIPv6を指定し、「両方」「IPv4の」の「IPv6」
        unpack_ipv4真の入力は、以下のように:: FFFF指定されている場合:192.0 .2.1時間、この機能をオン、192.0.2.1に解決、プロトコル=「両方」
URLField(CharFieldです)
    文字列のURLタイプは、認証入力するために使用されて
SlugField(CharFieldです)
    (マイナス)認証英数字、アンダースコア文字を入力するために使用される文字列
CommaSeparatedIntegerField(CharFieldです)
    文字列はカンマで区切られた数字の形で検証する必要があります
(フィールド)UUIDFieldの
    文字を検証文字列形式のUUIDを提供するために
FieldField(フィールド)
    表示文字列型として、ファイルやデータベースを選択することができます

の引数ジャンゴ管理者コラム
    
    verbose_name管理者(名前の列名の変更に対応する)表示されるフィールド名
    Adminユーザーにブランクは空気入ることを許可された
    編集可能な管理をあなたが編集できるかどうか(Falseの直接隠さに設定)
    の分野でhelp_textにメッセージ管理者
    の管理画面の選択肢には、フレームのコンテンツの選択
    =(選択を
        (1、「男性」)、
        (2、「女性」)、 
        あなたが選択した場合男性、1はデータベースに沈着する
        のセックスが変更されることはありませんので、そのクロス表の操作を避けるためにメモリ内のデータを変更しない、
        
    性別= IntegerFieldと(選択肢=選択肢)
"「」
コードをコピー

 

おすすめ

転載: www.cnblogs.com/jixu/p/11204295.html