Найти - Пользователи
Полная версия: flask blueprint
Начало » Web » flask blueprint
1
armor
Добрый день.
Есть два модуля для самого сайта и для админки. Один открывается по 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, то он.
adw0rd
Насколько я понял, вот ваш ответ http://librelist.com/browser//flask/2011/8/28/blueprints-dynamic-subdomains/#dd29f531c4493636da95f5720e384b9f
armor85
Очень похоже, но admin отвалился, странно… как и www впрочем.
armor
Ну вроде разрбрался, спасибо

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”? Без него ошибку даёт…
ziro
Попробуйте так:

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

В этом случае значение параметров роутинга с ключем ‘trademark’ будет удалено из словаря values.
armor
Вот спасибо всем. Работает прям как надо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB