高度なクエリ #= [1、2]フィールド名によるクエリ__in 1. RES = models.Student.objects.filter(age__in = [12,14,42 ])。すべての() #で除外しないことにより2.(フィールド名__in = [1,2])除外するという意味に加えて、 RES = models.Student.objects.exclude(age__in = [12,14,42 ])。すべての() #ワイルドカードクエリのような3 #WHERE名リーで始まるすべての名前について、「李%」#の代表のように #開始されているものに鈍感name__istartswith場合を示し RESを= models.Student.objects.filter(name__startswith = 「リー」).ALL() #名前「%白」#白で終わるすべての単語の一致を示しなどの #1 で終わるものに、name__iendswith表現は大文字と小文字を区別しません (name__endswith = RES = models.Student.objects.filter "ホワイト「).ALL() # %小型%」真ん中すべての単語の小さな印刷一致を意味のような名前は、「 #1 name__icontainsは、どのような言葉備え、小文字を区別しない表し RES = models.Student.objects.filter(=のname__containsを」小" ).ALL() #... ..と__range =介してカラム名の間4. [位置、終了位置を開始]間隔閉じ RESを= models.Student.objects.filter(id__range = [2,5 ]) .ALL() #5スライスリミット[10時20分]が前面開口部閉鎖後10から20まで取ることによってインデックスを表し RES = models.Student.objects.all()を5 :. 7 ] #順6.順" - "によって先行される方法は、昇順デフォルト降順 RES = models.Student.objects.order_by(" ID " ).ALL() 位繰り返し年齢フィールドは同じ年齢であれば、idフィールドの昇順によると、降順で注文することも押し RES = models.Student.objects.order_by(「-age 」、「ID 」).ALL() #7グループが #のパケットニーズDjangoのに使用される方法 から django.db.modelsはインポート、MAX、MIN、合計カウントを RES = models.Student.objects.values(" 名前").annotate(XXX =カウント(" IDを" )) #を表しますカウント数を計算する名前フィールドとテーブルのidフィールドを検索し、名前xxxのフィールドでグループのエイリアスを果たした #SELECT「app01_studentを。」「名前」、COUNT(「app01_student。」「ID」)「XXX」とから」" "名前" app01_student app01_student」BY GROUP" #8.のみ取るだけカラム値 RES = models.Student.objects.only(「名前」、「年齢」).ALL() #取り出しするオブジェクトのリストを含むクエリセットである、オブジェクトフィールドは、名前と値を含みますID列の値 #の違いと値を値はオブジェクトのみのセットのリストから取り出され、値のリストが辞書取るように設定されている #とあなただけのidフィールドが含まれているかどうかに関係なく、彼はあなたのidフィールドを取るために一緒に入れますアウト #9延期列除いて除去列以外の値さ RES = models.Student.objects.defer(「ID 」、「名」).ALL() #オブジェクトのセットのリストから取り出しがあり、どんなにれます何のidフィールドが存在しない、あなたは、列のIDのうちの値を取得します #使用して10 #を、我々は、データベースを構成するときに、データベースがデータベースに追加されます 。#データベース= { # 'デフォルト':{ # 'ENGINE': 'django.db.backends.sqlite3' # 'NAME':os.path.join(BASE_DIR、 'db.sqlite3')、 # } #} #も存在している場合複数のデータベース、使用するデータベース使用して決定することができる (使用。RES = models.Student.objects.all()を「デフォルト」) #11、ルックアップテーブルどのように多くのデータの合計 RES =のmodels.Student.objects .count() #12の最初のデータ RES = models.Student.objects.first() #13。最後に、データ RES = models.Student.objects.last() #以上のLT LTEより大きい未満14 GTEのGT以下 models.Student.objects.filter =のRES(= id__gt。8 ).ALL() RES = models.Student.objects.filter(= id__lte。8 ).ALL() #15フィルタの動作と、カンマで区切られそして RES = models.Student.objects.filter(ID = 2、年齢= 23である) 位型またはクエリセットを返す #16の操作又は #ジャンゴからインポートする必要があり、またはQメソッド から django.db.models インポートQの RESの =モデルを.Student.objects.filter(Q(ID = 2)| Q(年齢= 12である)) RES = models.Student.objects.filter(Q(Q(ID = 2)| Q(年齢= 12である))・Q( =名前" 李Tiezhu " )) # |との表現や表現& #元の更新に基づき17は、例えば、I 1 +のカラムの値全体たい 位ジャンゴでFメソッドからインポートする必要がある から django.db.models インポートF models.Student.objects.update(F(「年齢」) + 1 ) #このようなフィールドのすべての年齢+ 1う #18ネイティブSQL文 #Djangoはまた、私たちのネイティブSQLを記述するための方法を提供 から django.db インポート接続 #導入ジョイント カーソルconnection.cursor =() #は、カーソルオブジェクトを生成します cursor.execute() #は、SQL文を提出することができ、あなたはまた、パラメータを渡すことができます ()cursor.fetchall #すべての結果を拾う )(cursor.fetchoneを #結果にピックアップ models.Student.objects.raw() #を、この方法はまた、SQL文が使用することはお勧めしません提出することができる コードをコピーして 追加し、補足の一部削除 コピーコード #をで #データを追加する最初の (models.Student.objects.createを=名" XXX "、年齢= 12である) #データが増加複数の OBJ = [ models.Student(名 = " QQQ "であり、年齢= 12 )、 models.Student(名 = " AAA "、= 32歳)、 モデル.Student(名前 = " WWW "、年齢= 21です) ] models.Student.objects.bulk_create(OBJ) #を削除 models.Student.objects.filter(名前 = 「XXX 」).Delete() #を使用すると、単一のテーブルには問題を削除しない場合は、しかし、もしこのテーブルと他のテーブルの主キー、外部キー関係を確立し、このデータを削除するには、別のテーブルから対応するデータが削除されます #私たちが必要としない場合、あなたは外部キーを構築することができますので、これも削除をカスケードとして知られているがon_deleteに割り当てられている #数on_delete引数の意味 #CASCADEのデフォルトのカスケード削除 #のデータが外部キーを削除するに関連付けられている場合SET_NULLは、カスケード削除をキャンセルし、代わりにNULLに関連付けられた対応する値は、それがNULLのサポート必要と #を削除をカスケードキャンセルset_default、それが削除されます代わりに、デフォルト値の使用の クラス:学生(models.Model) 名 = models.CharField(MAX_LENGTH = 32 ) TEAC = models.ForeignKey(' 教師を'null = Trueの場合、on_delete = models.SET_NULL)