我已阅读Flask文档和Python文档,试图了解这些代码的作用。我知道它是初始化数据库,但想要非常详细地了解并使用普通语言,初学者易于使用的语言。
有人可以解释一下这个吗?
import sqlite3
from contextlib import closing
DATABASE = 'flaskr.db'
def connect_db():
return sqlite3.connect(app.config[’DATABASE’])
def init_db():
with closing(connect_db()) as db:
with app.open_resource(’schema.sql’, mode=’r’) as f:
db.cursor().executescript(f.read())
db.commit()
答案 0 :(得分:1)
import sqlite3
导入数据库连接器
from contextlib import closing
不知道为什么使用它。 Documentetion here
DATABASE = 'flaskr.db'
定义数据库,在这种情况下,它是一个db文件。
def connect_db():
return sqlite3.connect(app.config[’DATABASE’])
连接DB方法,它返回sqlite3连接,使用sqlite3 import并在其上调用connect()。 提示:尝试>>>在你的python控制台中导入后的dir(sqlite3)
def init_db():
with closing(connect_db()) as db:
with app.open_resource(’schema.sql’, mode=’r’) as f:
db.cursor().executescript(f.read())
db.commit()
初始化数据库方法,它需要一个schema.sql并通过f.read方法在DB上执行它。 执行后,您需要提交对db的更改,因此db.commit()
您可以清楚地解释here