Use sqlite3.Row factory in Flaskr (#588) #625

Merged
merged 1 commit into from Jan 25, 2013
Jump to file or symbol
Failed to load files and symbols.
+9 −2
Split
@@ -76,6 +76,10 @@ dictionaries instead of tuples this can be used::
db.row_factory = make_dicts
+Or even simpler::
+
+ db.row_factory = sqlite3.Row
+
Additionally it is a good idea to provide a query function that combines
getting the cursor, executing and fetching the results::
@@ -42,7 +42,10 @@ def get_db():
"""
top = _app_ctx_stack.top
if not hasattr(top, 'sqlite_db'):
- top.sqlite_db = sqlite3.connect(app.config['DATABASE'])
+ sqlite_db = sqlite3.connect(app.config['DATABASE'])
+ sqlite_db.row_factory = sqlite3.Row
+ top.sqlite_db = sqlite_db
+
return top.sqlite_db
@@ -58,7 +61,7 @@ def close_db_connection(exception):
def show_entries():
db = get_db()
cur = db.execute('select title, text from entries order by id desc')
- entries = [dict(title=row[0], text=row[1]) for row in cur.fetchall()]
+ entries = cur.fetchall()
return render_template('show_entries.html', entries=entries)