Flask: различия между версиями

Содержимое удалено Содержимое добавлено
→‎Шаг 3: Создание базы данных: стилевые правки, орфография
Строка 568:
<source lang="python">sqlite3 /tmp/flaskr.db < schema.sql</source>
 
Минусом этого решения является то, что для установки требуется приложение <code>sqlite3</code>, которое установлено не в каждой системе. Кроме того, нужно указать путь к базе данных, где можно сделать ошибку. Хорошая идея &mdash:; добавить функцию, которая инициализирует базу данных в самом приложении.
 
Желая поступить так, сначала Вы должны импортировать функцию <code>contextlib.closing()</code> из пакета <code>contextlib</code>. При использовании Python 2.5 необходимо импортировать <code>with_statement</code> из пакета <code>__future__</code> (импорт из <code>__future__</code> всегда должен быть первым в списке):
Строка 585:
</source>
 
<code>closing()</code> -&mdash; вспомогательная функция, позволяет нампозволяющая сохранить соединение открытым до конца блока <code>with</code>. Метод <code>open_resource()</code> поддерживает эту функциональность из коробки, так что его можно использовать в этом блоке. Функция открывает файл по пути (ваш flaskr каталог) и позволяет читать из него. Мы используем её здесь для выполнения скрипта с подключением к базе данных.
 
Соединяясь с базой данных, мы получаем связующийобъект объектсвязи (называемый <code>db</code>), предоставляющий нам курсор <code>cursor</code>, имеющийс методметодом для выполнения всего сценария. В конце нужно подтвердить (<code>commit</code>) изменения. SQLite3 и другие транзакционные базы данных не подтверждают операций без Вашего особого распоряжения.
 
Теперь у нас появилась возможность создать базу данных в оболочке Python, импортировав и вызвав созданную функцию:
Строка 596:
 
'''Поиск и устранение неисправностей'''
Получив сообщение об ошибке, что таблица не может быть найдена, убедитесь, что вы сделалисделан вызов функции <code>init_db()</code>
и правильно указаны названия Ваших таблиц указаны правильно (наиболее частая ошибка &mdash; путаница с множественным и единственным числом в названиях таблиц).
 
== Шаг 4: Запрос подключения к базе данных ==