Я использую приложение Multi-tenancy, используя Flask и App Engine. Я использую субдомен как мое пространство имен (пространство имен приложения). Ниже мой дизайн:Приложение с несколькими приложениями, использующее флеш-приложение и приложение
Когда test.domain.com доступа пользователя, я буду проверять, является ли субдомен «тест» в модели SudDomain, которая, как показано ниже:
class SubDomain: # subdomain stored as id
pass
Если «тест» есть в SubDomain пользователь будет перенаправлен на страницу входа в приложение, а в текущем пространстве имен приложения установлено значение «test». В противном случае отображается страница регистрации.
Как реализовать его в среде производства и разработки? Я хотел бы сделать следующее:
В производстве:
Использование before_request декоратора, я хотел бы сделать:
from urllib2 import urlparse
from flask import request
url_info = urlparse.urlparse(request.url) # Say, http://test.domain.com
subdomain = url_info.netloc.split(".")[0]
Эта подобласть может быть проверен на SUBDOMAIN модели и выполните остальные шаги.
В разработке:
Я не знаю, как реализовать этот сценарий. Я думаю: Запросы будут в форме http://localhost:8888/test/list/
, здесь «тест» считается субдоменом. Что-то в before_request
декораторах будут удалены, так что измененный запрос будет выглядеть как http://localhost:8888/list/
, и это приведет к правильной конечной точке. Можно ли так сделать в колбе?
Затем извлеченный субдомен - 'test' будет проверен в модели SubDomain.
Я делаю это правильно? Что-то не так в моем методе, особенно в местной среде разработки?
BTW, это мое первое приложение с несколькими арендаторами, пожалуйста, несите меня.
Заранее спасибо ..
Спасибо за предложение. Мой метод для локального dev env был сложным, и я не могу сказать, что он работает. Таким образом, я закончил добавление имени поддомена в настройках в случае локального разработчика, попробует также ваш метод. dnsmasq выглядит как удобный инструмент. – rajpy