Flaskチュートリアルのメモ1
以下のサイトでFlaskについて勉強中です。
msiz07-flask-docs-ja.readthedocs.io
サイト内の以下コードについての調査メモです。
import sqlite3 import click from flask import current_app, g def get_db(): if 'db' not in g: g.db = sqlite3.connect( current_app.config['DATABASE'], detect_types=sqlite3.PARSE_DECLTYPES ) g.db.row_factory = sqlite3.Row return g.db def close_db(e=None): db = g.pop('db', None) if db is not None: db.close()
'db' not in g
gはリクエストごとに使用する一時的なデータを格納できるオブジェクトとのこと。
データを、キーと値のペアである辞書として持っている。
辞書のように操作できるように実装されているため、in
演算子を使用して'db'
キーがあるかを確認できる。
detect_types=sqlite3.PARSE_DECLTYPES
データベースの各列の値の型を自動的に解釈して、適切なPythonの型に変換できるオプション。
g.db.row_factory = sqlite3.Row
SELECTした結果を参照する方法をrow_factory
にて指定できる(?)。
ここにsqlite3.Row
を指定することで、SELECTした行をsqlite3.Rowオブジェクトとして扱える。
sqlite3.Rowとして扱うと、カラム名に基づいて値を参照できる。
sqlite3 --- SQLite データベースに対する DB-API 2.0 インターフェース — Python 3.9.17 ドキュメント