.format() とバイナリ コンテンツを使用して SQL クエリ文字列を作成しようとしています (インジェクションは問題ありません)。最小限の例では、同じパスにサンプル イメージが必要です。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 as lite
import sys
try:
con = lite.connect(':memory:')
cur = con.cursor()
binary = lite.Binary(open("woman.jpg", "rb").read())
cur.execute("CREATE TABLE 'Images' ('Data' BLOB)")
cur.execute("INSERT INTO Images(Data) VALUES (?)", (binary,) )
query = "INSERT INTO Images(Data) VALUES ({0})".format(binary)
cur.execute(query) # <- doesn't work obviously
con.commit()
except lite.Error, e:
if con:
con.rollback()
print "Error %s:" % e.args[0]
sys.exit(1)
finally:
if con:
con.close()
http://zetcode.com/db/sqlitepythontutorial/の挿入画像の例と同じですが、.format() クエリ生成を使用します
.format() でこれを達成する方法はありますか? データベースにデータを挿入する一貫した方法を使用したいと考えています。
ありがとうございました。