一つのクエリ
テーブルを作成します。
#通过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と(選択肢=選択肢) "「」