Динамический поддомен в движке Python колбу - PullRequest
0 голосов
/ 03 апреля 2011

a.example.com b.example.com Я хочу положить в колбу с той же папкой приложения, разные файлы конфигурации.Я нашел следующее решение, но как их использовать?


Создайте процессор контекста, который вставляет 'request.host' в ваши шаблоны и соответственно ветвитесь.

Для большего контроля выможет создать объект Site, созданный из текущего запроса, и добавить к нему свойства, например:

class Site(object):
  def __init__(self, request):
    self.host = request.host

  @cached_property
  def google_analytics_id(self, default=''):
    if self.host == 'python.example.com':
      return <something>
    elif self.host == 'apple.example.com':
      return <something else>
    return default

Затем использовать site = Site (request) в вашем обработчике контекста и ссылаться на site.в ваших шаблонах.Кандидатами для других свойств могут быть HTML-мета-описание и ключевые слова, заголовок сайта и т. Д. Разветвление такого рода возможно, конечно, только в тех частях приложения, которые имеют доступ к объекту запроса.

Пол

1 Ответ

1 голос
/ 07 августа 2011

Взгляните на Document во флаконах. Довольно просто реализовать функцию обработки домена через Фабрики приложений и Диспетчеризацию приложений, что четко описано в разделе «Шаблоны для колб»:

http://flask.pocoo.org/docs/patterns/appdispatch/

http://flask.pocoo.org/docs/patterns/appfactories/

...