ジャンゴ-ORMのクエリ条件

さて、前提は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 = ^地獄#は、次のデータの先頭のタイトルフィールドを得る地獄鈍感である
    印刷(関連記事)

 

 

 

おすすめ

転載: www.cnblogs.com/ifdashui/p/11901776.html