Уведомления

Группа в Telegram: @pythonsu

#1 Март 30, 2014 19:56:18

dreamer-s
Зарегистрирован: 2012-08-13
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask, blueprint, config

Доброго времени суток.
Помогите, пожалуйста, много времени потратил, читал, так и не понял. Дело в том, что одну часть приложения я вынес в blueprint, но blueprint-у необходимо получить доступ к некоторым переменным в config.py. Поииск мне выдал, что бы я рыл в сторону app_context, но и правда не смог разобраться. Дело в том, что я не хочу в blueprint импортировать main_app, хочу, что бы blueprint был максимально независимым и по правде говоря изначально не пробовал импортировать модули главного приложения. Объясните куда смотреть, как реализовать.

Офлайн

#2 Март 31, 2014 10:17:17

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Flask, blueprint, config

Т.к. с Flask работал мало, не могу гарантировать что это решение наиболее корректное.

from flask import current_app
...
current_app.config['...']



Отредактировано cutwater (Март 31, 2014 10:17:45)

Офлайн

#3 Март 31, 2014 12:40:29

dreamer-s
Зарегистрирован: 2012-08-13
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask, blueprint, config

Обнаружил такую вещь, может кому-то пригодится в будущем… Да, конструкция приведенная выше отлично работает в блупринтах, во вьюхах внутри функций, в ините вызывает “working outside of application context”. Ну хотя бы так. Мне очень хотелось бы раз в ините обработать, достать данные, а там можно и импортировать куда угодно. В главном приложении в ините работает такая конструкция

flask import current_app
with app.app_context():
	print current_app.config['MEDIA_FOLDER']
ну или проще
print app.config['MEDIA_FOLDER']
Жаль, но для блупринта не нашел как поступить иначе, кроме как пихать во вьюхи вышеприведенный пример от cutwater ( кстати, спасибо вам благодаря вам попробовал во вьюхе опробовать код)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version