View on GitHub

クエリセットAPI

Home

クエリセットAPI

Djangoではデータベースにアクセスするための手段としてクエリセットAPIが提供されています。実際にクエリセットAPIを試してみましょう。下記のコマンドで、Pythonの対話シェルを起動してください。

(venv_recsys_django) $ python manage.py shell

シェル上で下記のコマンドを実行し、クエリセットAPIの使い方を学習しましょう。

In [1]: from online.models import User, Item, Rating, ReclistPopularity, ReclistSimilarity, ReclistItemcf

In [2]: User.objects.get(pk=1)
Out[2]: <User: 1:Alice>

In [3]: Item.objects.all()
Out[3]: <QuerySet [<Item: 1:カツオ>, <Item: 2:マグロ>, <Item: 3:中トロ>, <Item: 4:タイ>, <Item: 5:ヒラメ>, <Item: 6:スズキ>, <Item: 7:サバ>, <Item: 8:アジ>, <Item: 9:イワシ>]>

In [4]: Rating.objects.filter(rating__gte=4)
Out[4]: <QuerySet [<Rating: 1:2:4>, <Rating: 1:7:4>, <Rating: 2:1:5>, <Rating: 2:2:5>, <Rating: 2:3:4>, <Rating: 2:7:5>, <Rating: 2:8:4>, <Rating: 3:1:4>, <Rating: 3:3:5>, <Rating: 5:4:4>]>

In [5]: ReclistPopularity.objects.all()[:3]
Out[5]: <QuerySet [<ReclistPopularity: 1.0:1:カツオ:3.6666667>, <ReclistPopularity: 2.0:3:中トロ:3.5>, <ReclistPopularity: 3.0:7:サバ:3.5>]>

In [6]: ReclistSimilarity.objects.filter(base_item_id=1)
Out[6]: <QuerySet [<ReclistSimilarity: 1:カツオ:1.0:7:サバ:1.0>, <ReclistSimilarity: 1:カツオ:2.0:2:マグロ:0.8088706>, <ReclistSimilarity: 1:カツオ:3.0:3:中トロ:0.526592>]>

In [7]: ReclistItemcf.objects.filter(user_id=1)
Out[7]: <QuerySet [<ReclistItemcf: 1:Alice:1.0:1:カツオ:3.7745235>, <ReclistItemcf: 1:Alice:2.0:6:スズキ:1.6432108>, <ReclistItemcf: 1:Alice:3.0:8:アジ:1.4851258>]>

クエリセットAPIの詳細については、文献[1][2]を参照してください。

参考

  1. はじめての Django アプリ作成、その2 | Django ドキュメント | Django # API で遊んでみる
  2. 現場で使える Django の教科書《基礎編》 # 第6章 モデル (Model)