0
我現在正在使用Flask和SQLite3的CRUD項目。這裏是我的代碼Sqlite3與燒瓶用不同的方式?
def connect_db():
return sqlite3.connect(app.config['DATABASE'])
@app.route('/hello')
def hello():
g.db = connect_db()
cur = g.db.execute('SELECT name, lastname FROM customer')
x = [dict(name=row[0], lastname=row[1]) for row in cur.fetchall()]
g.db.close()
return render_template('hello.html', customer=x)
我是一個非常新的編程和數據庫也很新。我已閱讀Flask文檔,這是:http://flask.pocoo.org/docs/patterns/sqlite3/,並發現它很混亂。在燒瓶文檔中提供的步驟有什麼好處?背後有什麼概念?我真的失去了他們正在做的事情。我仍然可以像上面的代碼一樣執行此操作嗎?或者我應該改變我的自我使用燒瓶文檔樣式?我現在正在爲餐館庫存做一個基本的CRUD應用程序。
如果我使用這組代碼: DEF get_db(): 分貝= GETATTR(克, '_database',無) 如果db是無: 分貝= g._database = connect_to_database() 返回分貝 @ app.teardown_appcontext 高清close_connection(例外): DB = GETATTR(G, '_database',無) 如果db是不無: db.close() 我沒有寫G功能.db = connect_db()和這個g.db.close()在我的def hello()中:對嗎?我只寫cur = get_db()。cursor(),所以對我來說會少一些工作?因爲這些都包括在內? – Team
你的意思是應用程序上下文中的數據庫是什麼?你的意思是用於測試目的嗎?如果我製作真正的應用程序,這個代碼是否適合我的項目? – Team
這意味着數據庫不會存儲在請求中,而是存儲在所有應用程序中。至於第一個問題,是的。 – n1xx1