Flask・Jinja2・WTForms・SQLAlchemy用語集|Python Web開発リファレンス

ながみえ

Flaskを学習・開発する中で、「この用語、何だっけ?」「公式ドキュメントを探すのが面倒…」と感じたことはありませんか?

このページでは、Flaskや関連ライブラリ(Jinja2、WTForms、SQLAlchemy)でよく使われる用語やメソッド・属性を、まとめて一覧表で解説しています。

各用語は一つひとつ分かりやすく説明し、さらに詳細な解説記事があるものにはリンクも掲載。

これからFlaskを本格的に学びたい方はもちろん、日々の開発で「あの用語ってどんな意味だっけ?」と調べたい時のリファレンスとしても便利にご活用いただけます。

目次から気になる分野を選ぶだけで、効率よく知りたい情報にアクセス可能です。

Flask開発のスムーズな学習・実装のために、ぜひブックマークしてご活用ください!

あわせて読みたい
Python基礎学習者のためのFlask完全ガイド:最初のWebアプリ開発へ
Python基礎学習者のためのFlask完全ガイド:最初のWebアプリ開発へ

Flask関連用語

Flask関連用語定義・使い方の概要解説記事へのリンク
Baseクラス(SQLAlchemy)SQLAlchemyでテーブルやモデルを定義する際に継承する基底クラス。全てのモデルはこのクラスをもとに作られます。Chapter5-4
BlueprintFlaskアプリの機能を分割し、各機能ごとにルーティングや処理を整理する仕組み。大規模開発や再利用に役立ちます。Chapter7-2
Columnクラス(SQLAlchemy)SQLAlchemyでテーブルの各カラム(列)の型や制約を定義するためのクラス。モデル内で属性として使います。Chapter5-4
CRUDCreate・Read・Update・Deleteの略で、データベースにおける基本的な4つの操作を指します。Webアプリで頻繁に実装されます。Chapter5-3
CSRFWebフォーム送信時に発生しうる悪意あるリクエストを防ぐ仕組み。セキュリティ対策として重要です。Chapter4-7
CSRFトークンCSRF攻撃防止のため、フォーム送信時に発行される一意の値。サーバー側で検証し、不正なリクエストを防ぎます。Chapter4-7
DjangoFlaskと同じくPythonで書かれたWebフレームワーク。多機能で大規模な開発にも適しているのが特徴です。Chapter1-1
Flaskシンプルかつ柔軟なPython製のWebフレームワーク。小規模から中規模のWebアプリ開発に多く利用されます。Chapter1-1
Flask-DebugToolbarFlaskアプリのデバッグをサポートする拡張。実行中の変数やSQL、リクエスト情報をブラウザで確認できます。Chapter6-6
Flask-Loginユーザーのログイン認証やセッション管理を簡単に実装できるFlask拡張。認証が必要なサイトでよく使われます。Chapter7-4
Flask-MigrateSQLAlchemyのモデル変更を自動でデータベースに反映(マイグレーション)するための拡張です。Chapter5-8
Flask-SQLAlchemyFlask上でSQLAlchemy(ORM)を簡単に使えるようにする拡張。設定や利用方法がFlask向けに統一されています。Chapter5-7
Flask-WTFFlaskでWebフォームを安全かつ便利に扱うための拡張ライブラリ。バリデーションやCSRF対策もサポートします。Chapter4-7
GETメソッドHTTPで主にデータ取得の際に使うリクエスト方法。URLにパラメータを含めてサーバーに情報を要求します。Chapter4-2
HTTPWebページの閲覧やAPI通信で使われるプロトコル。リクエストとレスポンスの形式で通信が行われます。Chapter4-1
HTTPSHTTP通信にSSL/TLSによる暗号化を加えたもの。安全なデータ送受信が必要なサイトで必須です。Chapter4-1
HTTPメソッドGETやPOSTなど、HTTPリクエスト時の操作種類を示すもの。APIやフォーム送信で使い分けます。Chapter4-2
HTTPリクエストWebブラウザやアプリがサーバーに情報を送るための通信。メソッドやヘッダー、ボディを含みます。Chapter4-1
HTTPレスポンスサーバーからクライアントに返される応答データ。HTMLやJSONなどのデータ形式が含まれます。Chapter4-1
Jinja2Flask標準のテンプレートエンジン。HTML内でPythonの値を埋め込んだり、制御構文を記述できます。Chapter2-1
MVCアプリをModel・View・Controllerの3層に分けて設計するパターン。保守性や拡張性が向上します。なし
MVTDjangoで採用されている「Model・View・Template」の設計パターン。MVCと似た役割分担です。なし
MySQL広く使われるオープンソースのリレーショナルデータベース管理システム。多くのWebサービスで利用されています。なし
ORMオブジェクトとデータベースのレコードを自動的に対応付ける仕組み。SQLを書かずにDB操作が可能です。Chapter5-4
osモジュールPython標準のモジュールで、OSのファイル操作や環境変数取得などが行えます。なし
pathlibライブラリPythonのパスやファイル操作を簡潔に行える標準ライブラリ。パス結合や存在チェックが容易です。なし
PostgreSQL信頼性と拡張性に優れたオープンソースのリレーショナルデータベース。大規模サービスにも使われます。なし
POSTメソッドHTTPでフォーム送信やデータ追加時に使うリクエスト方法。リクエストボディにデータを含めます。Chapter4-2
SQLデータベースを操作するための標準的な言語。データの追加・取得・更新・削除などが行えます。Chapter5-1
SQLAlchemyPythonでデータベース操作を行うための強力なORMライブラリ。複数DBに対応しています。Chapter5-4
SQLiteサーバーレスで軽量な組み込み型リレーショナルデータベース。小規模アプリでよく使われます。Chapter5-1
SQLite ViewerSQLiteのデータベースファイルをGUIで閲覧・編集できるツール。テーブルやデータを確認できます。Chapter5-1
TracebackPythonでエラーが発生した際に表示される実行履歴。問題箇所の特定に役立ちます。Chapter6-1
WTFormsFlaskでのフォーム生成やバリデーションを簡単に行うためのライブラリ。複数の入力タイプに対応しています。Chapter4-3
インタラクティブデバッガWebブラウザ上でコードのデバッグや変数の確認ができるツール。開発時のエラー調査に便利です。Chapter6-5
エラーハンドリング例外発生時の適切な処理方法を設計すること。ユーザーへの通知やログ出力が主な役割です。Chapter6-2
カーソルオブジェクト(SQLite)SQLiteのSQL実行や結果取得に使うオブジェクト。executeなどのメソッドで操作します。Chapter5-2
カスタムエラーページ404や500などエラー発生時に独自のデザインや案内文を表示するページ。Chapter6-3
カスタムバリデータ独自ルールでフォームの入力値を検証するための関数やクラス。WTFormsなどで追加可能です。Chapter4-5
カスタムフィルターテンプレート内でデータを独自加工する関数。Jinja2などで自作して登録できます。Chapter3-3
サーバーWebアプリケーションを実行し、リクエストを受け付ける役割のコンピュータやソフトウェアです。なし
シークレットキーセッション管理やCSRF対策などで使われる暗号化用の秘密鍵。安全な値を設定します。Chapter4-7
スキーマデータベース内のテーブル構造や制約などの設計情報。テーブル作成時に定義します。Chapter5-8
スタックトレースプログラム実行時に発生したエラーまでの関数呼び出し履歴。デバッグ時の重要情報です。Chapter6-5
ステータスコードHTTPレスポンスの結果を示す3桁の数字。200は成功、404は未発見などがあります。Chapter4-1
セッション(SQLAlchemy)データベースとの接続やトランザクションを管理するためのオブジェクトです。Chapter5-4
データベース大量のデータを効率よく保存・検索・管理するシステム。多様なアプリケーションで利用されます。Chapter5-1
デコレーター関数やクラスの前後処理を共通化できるPythonの文法。ルーティングや認証処理などで使われます。なし
デバッグモード開発中に詳細なエラー情報や自動リロードを有効にする設定。Flaskのrun時に利用できます。Chapter6-5
テンプレートエンジンHTMLファイル内で変数展開や条件分岐ができる仕組み。動的なページ生成に使います。Chapter2-1
テンプレートマクロテンプレート内で再利用可能な部品(関数)を定義できる仕組み。繰り返し部分の簡略化に役立ちます。Chapter4-6
テンプレート継承ベーステンプレートから共通部分を継承し、各ページごとに差分だけを定義できる仕組みです。Chapter2-2
バリデーション入力データが正しいかを検証する処理。フォーム入力チェックなどで利用されます。Chapter4-4
フィールドクラス(WTForms)WTFormsで各フォーム項目(入力欄)を定義するためのクラス。型や検証条件も設定可能です。Chapter4-3
フィルターテンプレートで値を加工する関数や、DBでの検索条件を指定する仕組みなど。用途は多岐に渡ります。Chapter3-1
フォームユーザーからの情報入力を受け取るWebページ上の入力欄。送信後はサーバーで処理されます。Chapter4-2
プレースホルダー入力欄に表示される例やヒントとなる薄い文字列。ユーザー補助に役立ちます。なし
フレームワークアプリ開発でよく使う機能や構造をまとめたソフトウェア。効率的な開発を支援します。Chapter1-1
プロトコルネットワーク通信やデータ交換時の約束事・規則。HTTPやFTPなどが例です。Chapter4-1
マイグレーションDB構造の変更(テーブル追加・カラム変更など)を記録・反映する仕組み。バージョン管理も可能です。Chapter5-8
モデルクラス(SQLAlchemy)データベースのテーブルと紐づくPythonクラス。テーブル構造やリレーションを定義します。Chapter5-4
リクエストコンテキストHTTPリクエストごとにFlaskが保持する情報(ユーザーやデータなど)を扱う仕組み。Chapter2-3
リレーショナルデータベーステーブル同士の関係性を持つ構造のデータベース。SQLで操作します。Chapter5-1
ルーティングURLパスごとに呼び出す処理や関数を割り当てる仕組み。アプリの入り口となります。Chapter1-4
仮想環境Pythonプロジェクトごとにパッケージや設定を分離して管理できる環境。依存の競合を防ぎます。Chapter1-2
外部キー他テーブルのデータと関連付けるために使うキー。リレーションや整合性維持に用いられます。Chapter5-6
外部結合結合対象のどちらか一方にしか存在しない行も結果に含めるデータベースの結合方法。Chapter5-5
接続エンジン(SQLAlchemy)データベースとの物理的な接続や設定を管理するSQLAlchemyのオブジェクト。Chapter5-4
接続オブジェクト(SQLite)SQLiteデータベースに接続し、SQL実行を管理するPythonオブジェクトです。Chapter5-2
組み込みバリデータ(WTForms)WTFormsに最初から用意された、標準的な入力値の検証機能やクラス。Chapter4-4
動的ルーティングURLの一部を変数として受け取り、リクエストごとに異なる値を処理するルーティング手法。Chapter1-5
内部結合結合条件を満たすテーブル同士の行だけを抽出するデータベースの結合方法。Chapter5-5
秘密鍵セキュリティや暗号化処理で利用する安全性の高いキー。管理には十分注意が必要です。Chapter4-7

Jinja2とフィルターの関連用語

Jinja2で使用する関数/メソッド/属性など

Jinja2用語定義・使い方の概要解説記事へのリンク
@app.template_filter(“名前”)Flaskで独自のテンプレートフィルターを作るためのデコレーター。定義した関数をJinja2内で使えるようになります。Chapter3-3
{% block %}テンプレート継承時に、差し替え可能なコンテンツ領域を定義するJinja2の構文。親テンプレートで使います。Chapter2-2
{% extends %}別のテンプレートを継承して共通レイアウトを再利用できるJinja2ディレクティブ。Chapter2-2
{% include %}他のテンプレートファイルを挿入できるJinja2の構文。共通パーツの再利用に便利です。なし
{% macro %}テンプレート内で繰り返し使う部品や処理を関数のように定義できるJinja2の構文。複数回呼び出せます。なし
{% set %}テンプレート内で変数を作ったり値を保存したりできるJinja2の構文。データの加工時などに便利です。なし
abort()指定したHTTPステータスコードのエラー(404,403等)を強制的に発生させるFlask関数。なし
app.test_request_context()テストや開発時に一時的なリクエストコンテキストを作成するFlaskのメソッド。request等の動作確認に使います。Chapter2-3
configFlaskアプリ全体の設定情報を管理するオブジェクト。キーで設定値の参照・変更ができます。なし
current_app現在動作中のFlaskアプリ本体への参照を得るためのプロキシオブジェクト。アプリ設定などを参照できます。なし
escape()HTMLに埋め込む文字列を安全にエスケープするFlask/Jinja2の関数。XSS対策に利用します。なし
flash()ユーザーへの一時的なお知らせメッセージを表示したいときに使うFlask関数。主にリダイレクト時の案内に利用します。なし
gリクエスト中だけ有効な一時データを保存できるFlaskのグローバルオブジェクト。関数間で値を共有したい時に使います。なし
get_flashed_messages()flash()で送信した一時メッセージをテンプレートなどで取得できるFlaskの関数。なし
make_response()レスポンスオブジェクトを自作して返したいときに使うFlask関数。ヘッダーやCookie設定も可能です。なし
Markupエスケープ処理を回避してHTMLとして安全に出力したいときに使うJinja2のクラスや関数。なし
render_template()Jinja2テンプレートファイルをレンダリングしてHTMLとして出力するFlaskの関数。テンプレートに変数も渡せます。Chapter2-4
render_template_string()テンプレートファイルを使わず、文字列としてJinja2テンプレートを直接レンダリングできるFlaskの関数。なし
requestフォーム値やヘッダーなど、クライアントから送られたリクエスト情報を取得できるFlaskのグローバルオブジェクト。なし
sessionユーザーごとに一時的なデータを保存できるFlaskのグローバルオブジェクト。ログイン状態の保持などに利用。なし
url_for()エンドポイント(関数名)からURLを生成するFlaskの関数。リンク作成やリダイレクトに便利です。Chapter2-3

Jinja2のテンプレートフィルター一覧

フィルター名定義・使い方の概要解説記事へのリンク
capitalize文字列の先頭1文字を大文字、残りを小文字に変換します。
例:{{ 値|capitalize }}
なし
default値が未定義・空の場合にデフォルト値を表示するフィルター。
例:{{ 値|default(‘デフォルト’) }}
Chapter3-2
dictsort辞書型を指定したキーでソートします。
例:{{ 辞書|dictsort }}
なし
float値を小数(float)型に変換します。
例:{{ 値|float }}
なし
int値を整数型に変換します。
例:{{ 値|int }}
なし
joinリストの各要素を指定した区切り文字で連結するフィルター。
例:{{ リスト|join(‘,’) }}
Chapter3-2
lengthリストや文字列などの要素数・長さを返すフィルター。
例:{{ 値|length }}
Chapter3-2
lower文字列をすべて小文字に変換するJinja2のフィルター。
例:{{ 値|lower }}
Chapter3-2
replace文字列の一部を別の文字列に置き換えるフィルター。
例:{{ 値|replace(‘a’, ‘b’) }}
Chapter3-2
reverseリストや文字列を逆順にします。
例:{{ 値|reverse }}
なし
safe文字列をHTMLとして安全に出力するフィルター。
例:{{ 値|safe }}
Chapter3-2
sortリストを昇順でソートします。
例:{{ 値|sort }}
なし
striptags文字列からHTMLタグを全て除去します。
例:{{ 値|striptags }}
なし
title各単語の頭文字を大文字に変換するフィルター。
例:{{ 値|title }}
Chapter3-2
trim文字列の前後にある空白を削除します。
例:{{ 値|trim }}
なし
truncate文字列を指定した長さで切り詰め、省略記号を付けて表示するフィルター。
例:{{ 値|truncate(10) }}
Chapter3-2
upper文字列をすべて大文字に変換するJinja2のフィルター。
例:{{ 値|upper }}
Chapter3-2
wordcount文字列内の単語数を数えます。
例:{{ 値|wordcount }}
なし

フォームとWTFormsの関連用語

フォーム関連の関数/メソッド/属性など

フォーム用語定義・使い方の概要解説記事へのリンク
FlaskFormFlask-WTFで推奨されるフォームクラスの基底クラス。WTForms.Formの機能を拡張しています。なし
form.<field>.data各フィールドの入力値を取得するための属性。form.username.dataのように使います。なし
form.<field>.errors各フィールドのバリデーションエラーをリストで取得する属性。なし
form.<field>.label各フィールドのラベル(<label>タグ)を取得できる属性。なし
form.csrf_tokenCSRF対策用のトークン値を格納するWTFormsのフィールド。フォームの安全性確保に使われます。なし
form.dataフォーム全体や各フィールドの送信データを辞書形式で取得できる属性。Chapter4-4
form.errorsフォーム全体または各フィールドで発生したバリデーションエラーを辞書形式で格納する属性。Chapter4-4
form.hidden_tag()CSRFトークン等のhiddenフィールドをまとめてHTMLに出力するWTFormsのメソッド。なし
form.is_submitted()フォームが送信されたかどうかを判定するメソッド。主にバリデーション前の確認で使います。なし
form.populate_obj()フォームデータをモデルなど他のオブジェクトに一括で代入するWTFormsのメソッド。なし
form.validate()フォーム全体のバリデーション(検証)を実行し、結果を真偽値で返すメソッド。Chapter4-4
form.validate_on_submit()フォームがPOSTで送信された場合のみバリデーションを行うWTForms/FlaskFormのメソッド。なし
request.argsGETパラメータ(クエリ文字列)の全データを格納する辞書型オブジェクト。なし
request.args.get()GETパラメータ(URLクエリ文字列)から値を取得するメソッド。Chapter4-2
request.formPOSTリクエストで送信されたフォーム全体のデータを格納する辞書型オブジェクト。なし
request.form.get()POSTリクエスト時のフォームデータから値を取得するメソッド。Chapter4-2
request.method現在のHTTPリクエストのメソッド(GET/POSTなど)を取得するFlaskの属性。Chapter4-2
ValidationErrorバリデーションエラー時にraiseされるWTFormsの例外クラス。Chapter4-5
validatorsWTFormsで入力チェックを行うためのバリデータ関数やクラス群。Chapter4-4
wtforms.FormWTFormsでフォームを定義する際の基底クラス。FlaskFormの親クラスとしても利用。なし

WTFormsのフィールドクラス一覧

フィールドクラス名定義・使い方の概要
BooleanFieldチェックボックスとして表示されるフィールド。オン/オフや同意などに活用。
DateField日付(YYYY-MM-DD)を入力・選択するためのフィールド。生年月日や予定日入力向け。
DateTimeField日付+時刻(YYYY-MM-DD HH:MM:SS)を入力・選択するフィールド。予約日時などに。
DecimalField小数点を含む数値を扱うフィールド。金額や割合などに利用できます。
FileFieldファイルアップロード用の入力フィールド。画像や書類送信時に使います。
FloatField浮動小数点数値を入力できるフィールド。DecimalFieldよりPythonのfloat型で管理されます。
HiddenField画面に表示されない隠しデータ用のフィールド。CSRFトークンや内部管理用値の送信などに利用。
IntegerField整数値専用の入力欄。年齢や数量など数字だけを受け付けたい場合に使用。
PasswordFieldパスワード入力用のフィールド。入力内容がマスク表示されます。
RadioField複数の選択肢から1つを選ぶラジオボタン形式のフィールド。性別選択やカテゴリ選択などに。
SelectFieldプルダウン形式で1つの選択肢を選ぶフィールド。国や都道府県選択などに利用されます。
SelectMultipleField複数選択可能なリスト形式のフィールド。複数カテゴリ選択などで使用。
StringField1行の文字列入力欄を作成するフィールドクラス。ユーザー名やメールアドレス入力などで利用されます。
SubmitField送信ボタンを作成するためのフィールドクラス。フォーム送信時のボタン配置に使います。
TextAreaField複数行テキスト入力ができるフィールド。コメント欄やメッセージ入力向け。

WTFormsの組み込みバリデーター一覧

バリデータ名定義・使い方の概要
AnyOf値が指定したリスト内のいずれかと一致することを検証。
DataRequired入力が必須であることをチェックするバリデーター。空欄の場合はエラーになります。
Email正しいメールアドレス形式かどうかを検証するバリデーター。
EqualTo2つのフィールドの値が一致することを検証。パスワード確認欄などで利用。
InputRequired入力値が存在することを検証。DataRequiredとの違いは型変換前に検証する点です。
IPAddress入力値が有効なIPv4またはIPv6アドレスかどうかを検証します。
Length文字列やリストの長さが指定範囲内であることを検証。min・max引数で長さ制限が可能です。
MacAddress入力値が有効なMACアドレスかどうかを検証します。
NoneOf値が指定リスト内のどれにも一致しないことを検証。
NumberRange数値が指定した範囲内かどうかをチェックします。minやmaxで範囲指定。
Optional入力が任意(空欄でも可)であることを明示します。他のバリデーターと組み合わせて利用。
Regexp正規表現パターンと一致するかどうかを検証します。
URL入力値が有効なURL形式かどうかを検証します。
UUID入力値が有効なUUID形式かどうかを検証します。
ValidationErrorバリデーションに失敗した際に発生するWTFormsの例外クラス。カスタムバリデータ作成時にも利用。

データベースとSQLAlchemyの関連用語

データベースで使用する関数/メソッド/属性など

データベース用語定義・使い方の概要解説記事へのリンク
all()クエリの検索結果を全てリストで返すメソッド。なし
and_()複数の検索条件をAND(かつ)で結合するSQLAlchemyの関数。なし
app.app_context()Flaskアプリケーションの実行コンテキストを明示的に管理できるメソッド。DB操作時にも活用。Chapter5-7
back_populates双方向のリレーションを設定するための引数。親子双方から関連データへアクセス可能。Chapter5-6
Base.metadata.create_all()定義した全モデルのテーブルをデータベースに一括で作成するメソッド。Chapter5-4
commitトランザクションを確定し、DBに変更を保存する操作やコマンド。なし
configデータベースやアプリケーションの設定情報を管理するオブジェクトや変数。Chapter5-7
conn.close()データベース接続を閉じるメソッド。不要な接続を残さないために実行します。Chapter5-2
conn.commit()変更内容をデータベースに確定させるメソッド。トランザクションの終了時に使います。Chapter5-2
conn.cursor()データベースへのSQL実行や結果取得のためのカーソルオブジェクトを生成するメソッド。Chapter5-2
count()クエリの結果件数を返すメソッド。なし
create_engine()SQLAlchemyでデータベースとの接続エンジンを作成する関数。接続文字列でDB種別等を指定。Chapter5-4
cur.execute()SQL文を実行するメソッド。パラメータ付きクエリも対応。Chapter5-2
cur.executemany()複数のSQL文を一度に実行できるメソッド。大量データ挿入等に便利。Chapter5-3
cur.fetchall()SQL実行後、全ての結果レコードをリストで取得するメソッド。Chapter5-3
cur.fetchone()SQL実行後、結果の先頭1件のみを取得するメソッド。Chapter5-3
db.create_all()Flask-SQLAlchemyでモデルから全テーブルを一括作成するメソッド。Chapter5-7
db.drop_all()DB内の全テーブルを一括で削除するFlask-SQLAlchemyのメソッド。実験用などに使われます。Chapter5-7
db.Modelモデルクラス作成時に継承するFlask-SQLAlchemyの基底クラス。なし
db.sessionFlask-SQLAlchemyで利用するDBセッションオブジェクト。トランザクション管理やDB操作に必須。なし
declarative_base()SQLAlchemyの全モデルクラスの基底クラスを生成するファクトリ関数。ORMモデル作成時に必須。Chapter5-4
distinct()重複しないユニークな値だけを抽出するメソッド。なし
exists()条件に合うデータが存在するかどうかを真偽値で返すクエリメソッド。なし
filter()クエリに条件を追加するメソッド。複雑な検索条件も指定可能。なし
filter_by()カラム名を直接キーワード引数で指定して検索条件を追加するメソッド。なし
first()クエリ結果の先頭1件のみ取得するメソッド。無い場合はNoneを返します。なし
ForeignKey他のテーブルの主キー等とリレーションを張るための外部キー制約を設定するためのクラスや引数。Chapter5-6
get()主キー値で1件のデータを取得するメソッド。存在しない場合はNone。なし
Indexデータ検索を高速化するためのインデックス(索引)を設定する機能。なし
join()関連テーブル同士を結合してクエリを作成するメソッド。複数テーブルから同時にデータ取得が可能。Chapter5-5
limit()取得する件数の上限を指定するメソッド。ページネーション等で使用。なし
offset()取得開始位置を指定するメソッド。ページネーション等で利用。なし
one()クエリ結果が必ず1件であることを前提に値を取得。複数・0件の場合は例外。なし
or_()複数の検索条件をOR(または)で結合するSQLAlchemyの関数。なし
order_by()クエリ結果を並び替えるためのメソッド。昇順・降順の指定が可能。なし
outerjoin()外部結合(LEFT OUTER JOIN等)をクエリで指定するためのメソッド。Chapter5-5
PrimaryKeyテーブル内で各レコードを一意に識別するための主キー制約。なし
QuerySQLAlchemyのクエリ構築・実行オブジェクト。filterやall等でデータ検索を操作。なし
relationship()テーブル同士のリレーション(親子関係など)をORM上で定義するための関数。Chapter5-6
rollback()トランザクションの内容を取り消して元に戻す操作。エラー時に使います。なし
scalar()単一の値のみを取得したいときに使うクエリメソッド。なし
session.add()新しいレコード(モデルインスタンス)をDBへ追加登録するメソッド。なし
session.add_all()複数のレコード(モデルインスタンス)をまとめて追加するメソッド。なし
session.close()セッションを明示的に終了するメソッド。リソース解放や次の操作前に実行。なし
session.delete()指定したレコード(モデルインスタンス)をDBから削除するメソッド。なし
session.flush()セッション中の変更を一時的にDBに反映させるメソッド(commitせず)。なし
session.query()ORMでDBからデータを検索する際の基本となるクエリ生成メソッド。Chapter5-5
session.remove()セッションを完全に破棄するメソッド。トランザクション後の後処理に利用。なし
Tableテーブル(表)構造そのもの、またはSQLAlchemyでテーブルを定義するクラスや関数。なし
Unique同じ値の重複登録を防ぐための一意性制約。なし

SQLAlchemy Columnクラスのオプション一覧

オプション定義・使い方の概要
autoincrement整数型カラムで自動採番(自動インクリメント)を行う場合に使うオプション。主キーでよく利用。
CheckConstraintカラム値に対する任意のチェック条件(例: 正数のみなど)を設定する制約(テーブル定義で使用)。
commentこのカラムに任意のコメント(説明)を追加できるオプション。
defaultこのカラムのデフォルト値を指定するオプション。default=値の形で利用。
docドキュメンテーション文字列を追加できるオプション。モデルクラスの属性説明に利用可能。
ForeignKey他のテーブルのカラムとリレーション(外部キー制約)を設定するためのオプション。
indexこのカラムにインデックス(索引)を作成し検索を高速化するオプション。index=Trueで指定。
info任意のメタデータを辞書形式で格納できるオプション。開発者向けの補助情報に使われる。
nullableこのカラムにNULL値(未入力)を許可するかどうかを指定。nullable=Falseで必須カラムにできる。
ondelete外部キーで関連付けた行が削除されたときの動作(CASCADE等)を指定する。
onupdate外部キーで関連付けた行が更新されたときの動作を指定する。
primary_keyこのカラムをテーブルの主キー(Primary Key)に指定するオプション。primary_key=Trueの形で指定。
server_defaultデータベース側でのデフォルト値を指定するオプション。server_default=text(‘値’)などで利用。
type_カラムの型(Integer, String, DateTimeなど)を指定する必須オプション。
uniqueこのカラムの値の重複を禁止する一意制約をつけるオプション。unique=Trueで設定。
unique_constraint複数カラムを組み合わせた一意制約(テーブル定義で使用)。
あわせて読みたい
Python基礎学習者のためのFlask完全ガイド:最初のWebアプリ開発へ
Python基礎学習者のためのFlask完全ガイド:最初のWebアプリ開発へ
記事URLをコピーしました