queryとgetで行を取得する
すべての行、1行、主キーによる行を取得します
「queryとgetで行を取得する」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。
読み取りはqueryから始まる
データベースからの読み取りはすべて、モデルのquery属性から始まります。これは行をPythonオブジェクトとして取得するための入り口です。🔎
rows = User.queryallですべて取得する
クエリに対してall()を呼び出すと、一致するすべての行を通常のPythonリストとして読み込み、ループで処理できます。
users = User.query.all()
for u in users:
print(u.name)firstで1件だけ取得する
1行だけ必要な場合はfirst()を使います。最初に一致した行を返し、テーブルに該当する行がなければNoneを返します。
user = User.query.first()primary keyで取得する
IDがわかっている場合は、get()が最も速い方法です。primary keyを渡すと、その行を正確に返します。
user = User.query.get(7)見つからない場合、getはNoneを返す
そのIDの行がない場合、get()は例外を発生させずにNoneを返します。結果を使う前に必ず確認してください。
user = User.query.get(999)
if user is None:
print("not found")簡単に404を返す
ビューでget_or_404()を使うと、IDで取得し、行がなければ自動的に中断して404ページを表示します。手動で確認する必要はありません。
user = User.query.get_or_404(7)絞り込みにはfirst_or_404を使う
first_or_404()をfilterと組み合わせると、1件取得し、条件に一致するものがなければ適切な404を返せます。
u = User.query.filter_by(email=e).first_or_404()行を読み込まずに件数を数える
データではなく件数だけが必要ですか。count()ならデータベースに直接件数を問い合わせるため、すべての行をメモリに読み込まずに済みます。
total = User.query.count()クエリは遅延実行される
クエリを組み立てただけでは、まだデータベースにアクセスしません。SQLが実行されるのは、all、first、getなどのメソッドを呼び出したときです。
q = User.query
results = q.all()各行はオブジェクトです
結果は実際のmodel instancesとして返されるため、user.nameやuser.emailのように通常の属性としてカラムを読み取れます。
user = User.query.first()
print(user.email)適切な取得方法を選ぶ
IDがわかっている場合はget、複数の候補から1件取得する場合はfirst、全件取得する場合はallを使います。適切に選ぶと読み取り処理が明確で高速になります。
クイックチェック
レコードのprimary keyがわかっています。最も直接的に取得できる呼び出しはどれですか。
まとめ:行の取得
これでqueryを使ってデータを読み取れるようになりました。リストにはall、1件にはfirst、ID指定にはget、ビューでの処理にはor_404ヘルパーを使います。よくできました。🎉
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「queryとgetで行を取得する」レッスンは無料ですか?
はい。「queryとgetで行を取得する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。
「queryとgetで行を取得する」で何を学びますか?
すべての行、1行、主キーによる行を取得します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flask Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「queryとgetで行を取得する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlask Academyレッスンでコードを書いて実行できますか?
はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- queryとgetで行を取得する
- 結果をフィルター、並べ替え、制限する
- リレーションシップと外部キーを定義する
- JOINと遅延読み込み・即時読み込み