Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 30, 2012 15:10:46

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

flask blueprint

Добрый день.
Есть два модуля для самого сайта и для админки. Один открывается по www.site.ru, другой по admin.site.ru.

main = Blueprint('main', __name__, subdomain='www')
admin = Blueprint('admin', __name__, subdomain='admin')

Хочу добавить третий модуль который будет работать как каталог товаров, каждая фирма на своем сабдомене,
например: hp.site.com или ibm.site.ru. Шаблон один, но базы разные.
Собственно как настроить это модуль, чтобы он открывался на разным сабдоменам? Ещё лучше, если не www или admin, то он.

Отредактировано armor (Авг. 30, 2012 15:11:16)

Офлайн

#2 Авг. 30, 2012 15:59:57

adw0rd
От: Санкт-Петербург
Зарегистрирован: 2012-07-28
Сообщения: 107
Репутация: +  8  -
Профиль   Отправить e-mail  

flask blueprint

Насколько я понял, вот ваш ответ http://librelist.com/browser//flask/2011/8/28/blueprints-dynamic-subdomains/#dd29f531c4493636da95f5720e384b9f




Python, Django, Flask, Git, Emacs, Nginx, MySQL, SphinxSearch, Redis, Linux, FreeBSD
Мой блог, я на GitHub

Офлайн

#3 Авг. 30, 2012 18:40:16

armor85
От:
Зарегистрирован: 2008-08-01
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

flask blueprint

Очень похоже, но admin отвалился, странно… как и www впрочем.



Отредактировано armor85 (Авг. 30, 2012 18:42:57)

Офлайн

#4 Авг. 31, 2012 10:38:14

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

flask blueprint

Ну вроде разрбрался, спасибо

sub = Blueprint('sub', __name__, subdomain='<trademark>')
@sub.url_defaults
def add_trademark(endpoint, values):
    values.setdefault('trademark', g.a_trademark)
@sub.url_value_preprocessor
def pull_trademark(endpoint, values):
    g.a_trademark = values['trademark']
    query = City.query.filter(Company.url==g.a_trademark)
    g.trademark = query.first_or_404()
@main.route('/')
def index(trademark):
    return render_template('index.html')

Но смущает один момент, в каждом роуте писать первым параметром “trademark”? Без него ошибку даёт…

Офлайн

#5 Авг. 31, 2012 11:15:21

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

flask blueprint

Попробуйте так:

    g.a_trademark = values.pop('trademark')

В этом случае значение параметров роутинга с ключем ‘trademark’ будет удалено из словаря values.



Офлайн

#6 Авг. 31, 2012 11:34:44

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

flask blueprint

Вот спасибо всем. Работает прям как надо!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version