python-ジャンゴ-06

 ジャンゴ-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()を

 

おすすめ

転載: www.cnblogs.com/weizitianming/p/11235950.html