在Flask中初始化DB

时间:2013-11-18 09:10:19

标签: python flask

我已阅读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()

1 个答案:

答案 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