Flask Web サイトの Flask/SQLite チュートリアルに従っています: http://flask.pocoo.org/docs/patterns/sqlite3/
すべての選択クエリは正常に機能していますが、insert ステートメントを試しても何も起こりません。エラーは発生しませんが、データベースに行が挿入されません。エラーが発生していないときにこれをデバッグする方法がわかりません。考えている人はいますか?
これが私のセットアップコードです:
def connect_db():
return sqlite3.connect(DATABASE)
@application.before_request
def before_request():
g.db = connect_db()
@application.teardown_request
def teardown_request(exception):
if hasattr(g, 'db'):
g.db.close()
def query_db(query, args=(), one=False):
cur = g.db.execute(query, args)
rv = [dict((cur.description[idx][0], value)
for idx, value in enumerate(row)) for row in cur.fetchall()]
return (rv[0] if rv else None) if one else rv
動作するクエリの例を次に示します。
@application.route('/api/galleries')
def get_galleries():
query = query_db('select id, title, thumbnail from galleries')
return json.dumps(query)
そして、これが私の挿入ステートメントです。これはエラーなしで何もしません:
g.db.execute('insert into photos (is_favorite, galleries_id, filename) values (?, ?, ?)', [is_favorite, galleries_id, filename])