Python: SQLIte3のSELECT文をHTMLテーブル形式で出力
Pythonとsqlite3を使用して、指定されたテーブルからデータを取得し、 HTMLテーブル形式で出力するサンプルコードを以下に示します。
テーブル名: test
カラム: id, name, age
サンプルコード
import sqlite3
# HTMLテーブルの開始と終了タグ
HTML_TABLE_START = "<table border='1'>"
HTML_TABLE_END = "</table>"
# データベース接続とクエリ実行
with sqlite3.connect('database.db') as conn:
cursor = conn.cursor()
cursor.execute("SELECT * FROM test")
rows = cursor.fetchall()
# HTMLテーブルの生成
html_output = [HTML_TABLE_START]
html_output.append("<tr><th>行</th><th>ID</th><th>名前</th><th>年齢</th></tr>")
for index, row in enumerate(rows, start=1):
html_output.append(f"<tr><td>{index}</td><td>{row[0]}</td><td>{row[1]}</td><td>{row[2]}</td></tr>")
html_output.append(HTML_TABLE_END)
# 結果の出力
print("\n".join(html_output))
コードの説明
このコードは以下の手順で動作します:
- sqlite3モジュールをインポートします。
- with文を使用してデータベースに接続します。これにより、接続の自動クローズが保証されます。
- SELECT文を実行して、testテーブルからすべてのデータを取得します。
- HTMLテーブルの開始タグと列ヘッダーを追加します。
- fetchall()で取得したすべての行に対してループを実行し、各行のデータをHTMLテーブルの行として追加します。
- enumerate()関数を使用して、各行に行番号を付加します。
- HTMLテーブルの終了タグを追加します。
- 生成されたHTMLを出力します。
このコードを実行すると、testテーブルのデータがHTML形式のテーブルとして出力されます。各行には行番号が付加され、id、name、ageの各カラムのデータが表示されます。
注意: このコードを実行する前に、'database.db'ファイルが存在し、testテーブルが正しく作成されていることを確認してください。また、実際の使用時にはHTML出力をファイルに保存したり、Webフレームワークと統合したりすることで、より実用的なアプリケーションを作成できます。