ジャンゴ-06バックオフィスとクエリに参加
。1 、CRUD 。1 、クエリ 。1 、Entry.objects.all() 2、Entry.objects.all()値('' 、'' ) 。3 、Entry.objects.order_by() 。4 、Entry.objects.exclude(条件) 5。、Entry.objects.get(条件) のデータのみを返す使用 Entry.objects.filter(条件、6 | クエリ述語) Author.objects.filter(ID = 1、年齢= 10。 ) Author.objects。フィルタ(id__gte = 10 ) 2 データを増加させるために、 1、Author.objects.create(属性= 値) 2、著者OBJ =(属性= 値) obj.save() 3。 、 DICは = { ' 属性':' 値を' } OBJ =著(** DIC) obj.save() 。3 、データは、変形例 1を、単一の記録 OBJ = Author.objects.get(ID = 1 ) OBJ。属性 = 値 obj.save() 2 、一括編集 Author.objects.all()更新(属性 = 値) 4 、削除 削除個々のオブジェクト Author.objects.get(ID = 1).Deleteを() 2 、削除されたオブジェクトの複数 。Author.objects.all()()を削除 。5 、F()操作、およびQ()の動作を 図1 、F()操作 アクション:カラムの値を取得する から django.db.models インポートF. Author.objects.allを() .Update(年齢 = F(' 年齢')+10 ) 2 、Q()操作 クエリ著者ID未満または10もしくは35歳に等しい から django.db.models インポートQ Author.objects.filter(Q(id__lte = 10)| Q(age__gte = 35 )) 6。 、ネイティブのデータ操作 1 、クエリ 機能:生() 構文:Entry.objects.raw(SQL) 2は、追加および削除が DEF 実行(要求を): connection.cursorと()カーソルAS: SQL = "" cursor.execute(SQL) ... ... =========================================== まず、背景管理モデルの使用は 舞台裏ログインアドレス:HTTP: // localhostを:8000 / ADMIN 1 、背景の管理者を作成します 。 / manage.py createsuperuser ユーザー名: メールアドレス: パスワード: パスワード(再度): 2 、基本的な管理 。1 、登録データは、アプリケーションのadmin.pyで管理するための 1。、admin.py 役割:このモデルでのみ登録登録に必要な管理モデルは、管理することが許可される、または管理することはできません 2を登録モデル、 から .models インポート * admin.site.register(入場) :EX admin.site.register(著) 3 表示処理models.pyの内容変更 背景のデフォルト効果が高い可読性ない それぞれにmodels.pyでクラスに追加される DEFの __str__ (自己): 戻りself.nameを 4。 、メタにより達成特性を示す-内部クラスは、 それぞれを可能にメタベースから提供形態を示すために設けられた内部モデルクラス クラスは、著者(models.Model): .... .... .... .... .... クラスメタ- : 1 のDB_Table ,:名前は、エンティティ・クラスの名前は、テーブルに対応する指定 2 、 verbose_name:名前(単数形)の管理に表示されたエンティティクラスの定義 。3 、verbose_name_plural:効果前掲は、複数形である 4、発注:リストのバックグラウンド値のデータは、デフォルトは昇順です照合を表示し、下降、その後、追加「- 」 3 、上級管理職 1は、admin.pyに高度な管理機能を実現する管理クラスを作成して 1を、定義されたEntryAdminクラスを、admin.ModelAdminのから継承された クラスAuthorAdmin(admin.ModelAdmin): 合格 2 、上級管理職登録クラス admin.site.register(エントリ、EntryAdmin) admin.site.register(著、AuthorAdmin) 。3 EntryAdmin特性の増加を可能にする、 1。、list_displayの 役割:表示エンティティ表示されるフィールドのページ情報、 値を:リストまたはからなる属性名タプル EX: list_display =(「名前を」、「年齢」、「メールで送信」) 2を、list_display_links 役割:エンティティの定義は、特定のページにリンクすることができ、そのリンク タプルまたはからなる属性名のリスト:値 注:値がlist_displayに現れなければならない EX: list_display_linksの =(「名前」、「電子メール」) 3 、list_editableを アクション:定義は、フィールドがページのリストに変更することを可能にする タプルまたは構成プロパティ名のリスト:値 注:値はlist_display_linksには表示されませlist_editable 4。、search_fields :追加フィールドが許可され検索され た属性:値をなるタプルやリストの名前 5 、list_filterの 効果:迅速なスクリーニングを達成するために、リストの右側にあるフィルタを増やします 値:タプルまたは属性名からなるリスト 。6 、date_hierarchy 効果:時間セレクタの上部の増加の値これは、日付フィールドまたはDateTimeField型の列でなければなりません 7 、フィールドの 役割:表示属性詳細ページエンティティと、どのような順番で表示します 値:名前または属性リストからなるタプル 。8 、フィールドセット 詳細ページエンティティに、特性が分類されています。役割 注:フィールドセットを共存できないフィールド 構文: フィールドセット = ( (「グループ名」、{ 「フィールド」を :(属性1、属性2)、「クラス」 :( 「」)})、 ) 運動: 1 、出版社としての上級管理機能を向上させる 1 、実体ページのリストの表示名を、住所、都市の宿泊施設 2折りたたみます 、住所、市は編集することができます 3 本物の細部に入る名をクリックしたときに、ページ 4 、フィルタを追加する権利、およびアドレス市でフィルタすることができます 。5 、グループの表示 名、住所、市の基本的なオプションの 国、選択可能なオプションのウェブサイト、および折り畳むことができる 2、Djangoは、クエリに参加する 1、のペアを地図(1:1 ) 1 、1何件の Bに関連付けられたレコードがテーブルのテーブルのレコードを一致させることができ 、典型的な:一対一 実装データベース。 表A:デザインマスターキー 表Bは:主キー、増加、および参照テーブルの主キー、ユニーク制約が増加しているがあり 2は、シンタックス プロパティ = models.OneToOneField(エントリー) 。3 、クエリ クラス妻(models.Model ): .... .... 著者 = models.OneToOneField(著者) フォワード・クエリ:妻著者調べることにより W = Wife.objects.get(= IDを1 ) Aは = w.author クエリを逆:著者によって見つけます妻 A = Author.objects.get(ID = 1 ) W = a.wife で添加Djangoの著者属性にデフォルトでOneToOneField妻 (2対多マッピング1 :M) 1は、何が多い データテーブルはテーブルBの複数のいずれであってもよいですデータの整合片 ようブックとプレスとの関係として 2 、構文 外部キー(外部キー) 属性 = models.ForeignKey(エンティティ・クラス) EX: ブック(M)と出版社( 1 ) クラス帳(models.Model): ... ... 出版社 = models.ForeignKey(出版社) 3 、照会 ブック(M)と出版社は、( 1 ) クラスブック(models.Model): ... ... 出版社 = models.ForeignKey(出版社) 、前方クエリ1 - お問い合わせブック出版社別 ブック = Book.objects.get(上記ID = 1 ) 出版社 = book.publisher 2、逆引き参照- ブック出版社の検索によって 出版社 = Publisher.objects.get(= ID。1 ) ()publisher.book_set.all関連するすべてのデータを取得する BookSet = publisher.book_set.all()を