from contextlib import closing
def init_db():
with closing(connect_db()) as db:
with app.open_resource('schema.sql') as f:
db.cursor().executescript(f.read())
db.commit()
Это из учебника по фляге Шаг 3 (http://flask.pocoo.org/docs/tutorial/dbinit/#tutorial-dbinit). И мне мало любопытно, что это строка 4.
Должен ли я импортировать и использовать этот метод contextlib.closing()?
Когда я узнал о с утверждением, многие статьи говорит, что она закрывает файл автоматически после того, как процесс, как показано ниже ( так же, как, наконец: thing.close()).
with open('filename','w') as f:
f.write(someString);
Хотя я не использую этот contextlib.closing(), как показано ниже, какая разница? Это из версии 2.7.6, спасибо.
def init_db():
with connect_db() as db:
with app.open_resource('schema.sql') as f:
db.cursor().executescript(f.read())
db.commit()