• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / DjangoのモデルでLimit,Offset,filterを利用したレコードの絞り込み、filterでの条件指定の方法まとめ

DjangoのモデルでLimit,Offset,filterを利用したレコードの絞り込み、filterでの条件指定の方法まとめ

1 Djangoのモデルを用いた値の取得(all,limit,offset,filter)
2 関連記事

Djangoのモデルを用いた値の取得(all,limit,offset,filter)

Djangoのモデルでは、allを用いて全てのデータをテーブルから取得するが、一部だけ取得することもできる。
以下のように関数を記述する。

  • 値を一部取り出す[:]
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'Project.settings') # djangoのDB接続設定読み込み

import django
django.setup() # djangoのセットアップ

from app.models import User

# "select * from user"が実行され、全レコードを取得
user_list = User.objects.all()
# "select * from user limit 3"が実行され、3つだけレコードが返される
user_list = User.objects.all()[:3]
# "select * from user limit 1 offset 2"が実行され、最初から2つ飛ばして1つだけのレコードが返される
user_list = User.objects.all()[2:3]
# Userオブジェクトの10番目までの1つ飛ばしの配列が返される
user_list = User.objects.all()[:10:2]

また、all()でなくfilterを用いると、値の条件を指定して、モデルからオブジェクトのリストを返すこともできる。

  • filterのサンプル(=,<,>,like,and,or)
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'ProTwo.settings')

import django
django.setup()

from appTwo.models import User

# select * from user where first_name = 'Taro'が実行される
user_list = User.objects.filter(first_name='Taro')

# ageが10以下のものだけを取得(select * from user where age <= 10を実行)
user_list = User.objects.filter(age__lte=10)

# ageが10以上のものだけを取得(select * from user where age >= 10を実行)
user_list = User.objects.filter(age__gte=10)

# ageが10より小さいのものだけを取得(select * from user where age < 10を実行)
user_list = User.objects.filter(age__lt=10)
# ageが10より大きいのものだけを取得(select * from user where age > 10を実行)
user_list = User.objects.filter(age__gt=10)

# first_nameにTを含むものを取得(select * from user where first_name = '%T%'を実行)
user_list = User.objects.filter(first_name__contains='T')
# first_nameがTで始まるものを取得(select * from user where first_name = 'T%'を実行)
user_list = User.objects.filter(first_name__startswith='T')
# first_nameがTで終わるものを取得(select * from user where first_name = '%T'を実行)
user_list = User.objects.filter(first_name__endswith='T')

# ageが32以下かつ、first_nameがTで終わるものを取得(select * from user where age <= 32 and first_name = '%T'を実行)
user_list = User.objects.filter(first_name__endswith='T', age__lte=32)

from django.db.models import Q
# ageが32以下または、first_nameがTで終わるものを取得(select * from user where age <= 32 or first_name = '%T'を実行)
user_list = User.objects.filter(Q(first_name__endswith='T')| Q(age__lte=32))

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 Djangoのモデルを用いた値の取得(all,limit,offset,filter)
2 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約