Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 1, 2012 11:53:02

DevPy
Зарегистрирован: 2012-09-21
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при запросе к БД

Для своего сайта использую SQLAlchemy, Flask и шаблон “Быстрого старта” (там же и предлагаемый - http://flask.pocoo.org/docs/quickstart/) и Blueprint для разделения на поддомены.

В начале файла с приложением, наряду со всеми необходимыми, подключаю свой класс, который иногда используется.

from filter_forms import FilterFormNews
Потребовалось сделать в нем запросы к БД и беда… Приложение стало выводить ошибку подключения к БД. Как предполагаю, приложение сначала загружается, подгружаются модули, а уже затем происходит подключение к БД.
Интересно, это на самом ли деле так?

Выход нашел только такой: подключать модуль только в самой функции, в которой он используется
@mdr.route('/news/')
def news(page):
    from filter_forms import FilterFormNews
    # далее код

Но правильно ли со стилистической точки зрения делать IMPORT в какой-нибудь двадцатой функции в середине кода? Так практикуется? А то вдруг, есть такие негласные соглашения - использовать from * import * только вначале файла

Офлайн

#2 Окт. 2, 2012 15:26:40

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Ошибка при запросе к БД

Согласно PEP8, импорт - только вверху.



Офлайн

#3 Окт. 3, 2012 01:23:22

Fibio
От:
Зарегистрирован: 2010-09-14
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка при запросе к БД

Посмотрите в сторону http://packages.python.org/Flask-SQLAlchemy/



Офлайн

#4 Окт. 16, 2012 07:22:00

DevPy
Зарегистрирован: 2012-09-21
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при запросе к БД

Lexander
Согласно PEP8, импорт - только вверху.
Спасибо за ссылку. Стал искать более красивый правильный способ решения.

Fibio
Посмотрите в сторону http://packages.python.org/Flask-SQLAlchemy/
Я его и использую, но все дело в том, что видимо соединение с БД происходит после того, как приложение все загрузилось.

Всякую ерунду уже поперепробывал…

Чисто теоретически, тут наверное должна помочь команда какого-нибудь ручного старта подключения к БД (через Flask-SQLAlchemy).

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version