さて、前提はORMのモデルを作成することです(https://www.cnblogs.com/ifdashui/p/11901084.htmlを参照してください)
以下のデータは現在、(これらのデータに基づいて、次のクエリ処理を行うために)データベースに存在し
models.pyで
#- * -コーディング:UTF-8 - * - から django.dbのインポートモデル クラス条(models.Model): タイトル = models.CharField(MAX_LENGTH = 200 ) コンテンツ = models.TextField() クラスメタ: DB_Tableの = 「記事」 #変更テーブルの名前名前はArticle_articleデータに対応していない場合、記事は、カスタム設定であります
仮想環境プロジェクトのパスにだけでなく、仮想環境に次の2つのマッピングデータベースのコマンド:(ノートを使用)
manage.py makemigrationsパイソン
python manage.py移行
そして、それがviews.pyで動作することができます
model.pyでは、ORMモデルを作成します
django.db 輸入モデル クラス条(models.Model): タイトル = models.CharField(MAX_LENGTH = 200 ) コンテンツ = models.TextField() カテゴリ = models.ForeignKey(' カテゴリー'、on_delete = models.CASCADE、ヌル= TRUE) #関連するテーブルの上に クラスメタ: DB_Tableの = 「記事」 #変更テーブルの名前名前はArticle_articleデータに対応していない場合、記事は、カスタム設定であります
質問
次にviews.py中
1.exact =等号に対応するデータベースの基礎となります
.models 輸入条 DEFのインデックス(要求): #1 1.exact基礎となるデータベース等号に対応する= #Articleこの記事は、基礎となるデータベースにArticle.objects.filter =(title__exact =「ワードこんにちは」)#の対応だったところタイトル···から···選択= 'こんにちは世界
2.iexactなどの基盤となるデータベースに対応
#などの基礎となるデータベースへの2.iexact対応 #Articleこの記事Article.objects.filter =(title__iexact = "ワードこんにちは")は、基礎となるデータベース#のarticle` `article`.`title` LIKEこんにちはWordに対応しました
3.containsが、あること、あなたが見つけ、指定した文字列の文字があるかどうか、大文字と小文字の区別判断を使用、データベースがAであり、それは見つけることができません
#あなたはそれを見つけることができません、データベースがAで、見つける3.containsユースケースで指定した文字列内の文字があるかどうかに敏感な判断、 Articleこの記事をされた= Article.objects.filter(title__containsは= 「こんにちは」) #は···タイトルLIKE「から···選択基礎となるデータベースと同等です %のHello World%」
4.icontainsは、大文字と小文字を区別しないを使用してあなたが見つけることで、データベースがAで、その後、同じクエリを取得
#4.icontainsユース大文字と小文字を区別しないが、あなたが見つけることです、データベースはAで、その後、同じクエリを取得 #の記事をこの記事ではでした= Article.objects.filter(title__icontains =「こんにちは」)#selectから······ 「%のHello World%のようなタイトルがどこ 」 であれば、関連するデータが含まれているとして、チェックアウトすることができますように、この文字列パーセントあなたです
5.inクエリが与えられた範囲内で、使用括弧とブラケットとすることができます
#5.Inクエリは括弧で、所定の範囲内にあり、ブラケットは、 #記事= Article.objects.filter(ID_IN = [1,2])#エキスID = 1、ID = 2で······ID SELECTに[1,2]から基礎となるデータベースに対応するデータ #が存在が抽出されないない方法
マルチテーブル、そして(外部キーのmodels.pyで必要で、テーブルを作成し、この表)内のクエリの場合
models.py下
からdjango.db輸入モデル クラス分類(models.Model): 名前 = models.CharField(MAX_LENGTH = 100 ) クラスメタ: DB_Tableの = 「カテゴリ」 #、データの名前にマッピングされたテーブルの変更名前は、カスタム設定の名前です。 クラス条(models.Model): タイトル = models.CharField(MAX_LENGTH = 200 ) コンテンツ = models.TextField() カテゴリ = models.ForeignKey(' カテゴリー'、on_delete = models.CASCADE、ヌル= TRUE) #関連するテーブルの上に クラスメタ: DB_Tableの = 「記事」 #変更テーブルの名前名前はArticle_articleデータに対応していない場合、記事は、カスタム設定であります
仮想環境プロジェクトのパスにだけでなく、仮想環境に次の2つのマッピングデータベースのコマンド:(ノートを使用)
manage.py makemigrationsパイソン
python manage.py移行
でviews.py
#のマルチテーブルの動作クエリ categorysを= Category.objects.filter(article__id__in = [1,2]) #のこの分類に係る物品表1及び2の検索ID、及びカテゴリ表1及び2データの下で、そしてプリントアウトするforループを使用することができる ため、カテゴリ内categorys: 印刷(カテゴリ)
であるMETA逆引用符を(使用して、テーブル(記事)は、この表に名前を変更されたため、#なぜ、この記事です)、
フォームarticle_setで書かれていない、その後の行に直接使用小文字のモデル番号の名称、、、あなたはデフォルトの方法を変更したい場合は、外部キーの定義におけるとき
#パスrelated_query_name =「カスタム名」
データがより大きいものを見つけるために6.gt
#データがより大きいものを見つける6.gt 記事= Article.objects.filter(id__gt = 2) #のクエリIDは、データ2の全てよりも大きい 印刷(関連記事)
7.gteは平均値に等しいです
#は、データがより大きいか等しいかを調べる7.gte 記事= Article.objects.filter(id__gte = 2) #のクエリIDは、すべてのデータ2の合計よりも大きい 印刷(関連記事)
データ未満であるものを見つけるために8.lt
#データ未満であるかを調べる8.lt 記事= Article.objects.filter(id__lt = 2) #のクエリIDは、以下のデータ2の全てよりも 印刷(関連記事)
9.lte以下でどのようなデータを見つけるために
#は、データが以下であるものを見つける8.lte 記事= Article.objects.filter(id__lte = 2) #のクエリIDは、以下のすべてのデータ2に等しいよりも 印刷(関連記事)
10.startswith:始まる文字列を指定するには、大文字と小文字を区別
#10.startswith:開始を指定する文字列を、大文字と小文字が区別 記事= Article.objects.filter(title__startswith = 「こんにちは」)#クエリハローないで、テーブル内のデータから始まるハローから始まる、または存在下の場合照会することはできません 印刷(関連記事)
11.istartswithは:大文字と小文字を区別しない、文字列の先頭を指定します
#11.istartswith:大文字と小文字を区別しない、開始文字列を指定するために 記事= Article.objects.filter(= title__istartswith 「こんにちは」)#クエリクエリハローデータの先頭に、このテーブルの先頭に、以下のhello以上ではありません私はケースを気にしない 印刷(関連記事)
12.endswith:データの列のクエリ終わり、大文字と小文字を区別
#12.endswith:文字列のクエリデータの終わり、大文字と小文字を区別 記事= Article.objects.filter(title__endswith = 「こんにちは」)#の資金があれば、それは一見ハローとしてテーブルの末尾にクエリデータませんアウト 印刷(関連記事)
13.iendswith:文字列のクエリデータの終わり、大文字と小文字を区別しません
#13.iendswith:文字列のクエリデータの終わり、大文字と小文字を区別しない 記事= Article.objects.filter(title__iendswith = 「こんにちは」)#のクエリケース無視して終了このデータテーブルこんにちは、 印刷を(記事)
14.range:括弧とブラケット月との間···と···に相当する範囲内のデータを取得します
ここしばらくの間、例えば
models.pyでの時刻フィールドの最初の増加
クラス条(models.Model): タイトル = models.CharField(MAX_LENGTH = 200 ) コンテンツ = models.TextField() カテゴリ = models.ForeignKey(' カテゴリー'、on_delete = models.CASCADE、ヌル= TRUE) #関連するテーブルの上に CREATE_TIME = models.DateTimeField(auto_now_add = Trueの場合、ヌル= TRUE) #auto_now_add =真、自動的に現在の時刻を設定します行きます
仮想環境プロジェクトのパスにだけでなく、仮想環境に次の2つのマッピングデータベースのコマンド:(ノートを使用)
manage.py makemigrationsパイソン
python manage.py移行
次にviews.py中
#注ライブラリには、インポートする必要があること
日時インポート日時から
django.utils.timezoneインポートmake_awareから
#14.range:括弧とブラケットとの間に···と···に相当する範囲内のデータ取得は、 #一定期間のための例として、ここで START_TIME = make_aware(日時(年2019 =、=月。4 ,. 4 =日、時間= 17、= 0分、SECOND = 0)) END_TIME = make_aware(日時(年= 2019、月= 4、日= 4、時間= 18分= 0、第二= 0)) 記事 = Article.objects.filter(create_time__range = (START_TIME、END_TIME)) プリント(記事)
クエリに日付によるフィルタ日時15.検索条件、(時間、年、WEEK_DAY、など)
= Article.objects.filter記事(create_time__date =日時(2018年=年、月= 4日目= 4)) #が条件2018年4月4日満たしているすべてのデータを見つける 印刷(記事) 返すのHttpResponse(「成功」の場合)16 ISNULLは、データ検索空を決定
16.データ検索が空であるかどうかを判断ISNULL
#16 ISNULLは、データの検索が空であるかどうかを判断する 記事= Article.objects.filter(create_time__isnull = TRUE) #GETこのフィールドで空白CREATE_TIMEデータ を印刷(関連記事)
17.正規表現は、通常のクエリデータ、大文字と小文字が区別を使います
#17。A REGEX正規のクエリデータを使用して、大文字と小文字が区別 記事= Article.objects.filter(R&LT title__regex = 「^地獄」)#は地獄、大文字と小文字が区別のためにデータの最初にタイトルフィールドを得る 印刷(関連記事)
18. iregex使用通常の問合せデータではなく、大文字と小文字を区別
#定期的に鈍感な使用18. A iregexクエリデータ 記事= Article.objects.filter(R&LT title__iregex = 「^地獄」)#は、次のデータの先頭のタイトルフィールドを得る地獄鈍感である 印刷(関連記事)