[Python 100日チャレンジ] Day 85 - FlaskとSQLite連携
FlaskアプリからSQLiteへ接続し、Webフォームのデータを保存する基本構成を学びます。
[Python 100日チャレンジ] Day 85 - FlaskとSQLite連携
WebアプリにDBをつなぐ
Flaskだけではデータを長く保存できません。SQLiteと組み合わせることで、フォームから送信された内容や投稿データを保存できます。
1
2
3
4
5
6
import sqlite3
def get_db():
conn = sqlite3.connect("app.db")
conn.row_factory = sqlite3.Row
return conn
テーブルを作る
1
2
3
4
5
CREATE TABLE posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
body TEXT NOT NULL
);
フォーム内容を保存する
1
2
3
4
5
6
7
db = get_db()
db.execute(
"INSERT INTO posts (title, body) VALUES (?, ?)",
(title, body),
)
db.commit()
db.close()
一覧表示する
1
posts = db.execute("SELECT id, title FROM posts ORDER BY id DESC").fetchall()
取得したデータをJinja2テンプレートへ渡して表示します。
今日のゴール
FlaskとSQLiteを連携すると、入力、保存、一覧表示までできるWebアプリになります。データベース接続を関数化し、SQLを安全に実行しましょう。
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。
