Могут ли пространства имен включать несколько доменов? - PullRequest
1 голос
/ 13 сентября 2011

Мое приложение gae обслуживает несколько доменов по условиям if..else.., а не по пространствам имен.Я вижу, что кто-то другой решил эту проблему с помощью пространств имен

"У меня есть одно приложение с несколькими определенными пространствами имен.

Я хотел бы настроить несколько доменов

a.com b.com c.com

и приложение должно определить домен и записать данные домена в соответствующее пространство имен. "

Я не знаю, как это сделатьс пространствами имен, и я хочу, чтобы лучший способ добавить домен в приложение для настройки, такие как содержимое и языки.Например, отправляя электронное письмо через форму, я использую только условие вместо пространства имен.

class FileUploadHandler(blobstore_handlers.BlobstoreUploadHandler):
  def post(self):
    adminemail = 'admin@domain1.com' if gethost() is 'domain1' else 'admin@domain2.com'
    message = mail.EmailMessage(sender=admin_email, subject=self.request.POST.get('subject'))
    message.body = ...
    message.to='info@domain...
    message.send()
    self.redirect('/customer_service.htm')

Я использую один и тот же обходной путь для запросов, локализации и, в некоторых случаях, даже для отображения какого шаблона, в то время как я должен иметь возможность сделать все домены основанными на одних и тех же шаблонах и отличаться только содержимым, чтобыМое приложение не кодирует домены и другие параметры, которые легко добавить и изменить.

Являются ли пространства имен отличной идеей в этом случае?До сих пор способ решения проблемы с разными доменами - это переменная для сущности, из каких доменов она вышла

if util.get_host().find('my-dot-com') > 0:
    url = 'www.my-dot-com.com'

У меня есть функция, которая определяет, что я имею в виду, но это может спутать www.domain.com сdomain.com или у вас есть проблемы с поддоменами

def get_host():
  return os.environ.get("HTTP_HOST", os.environ["SERVER_NAME"])

Я был бы рад узнать любую идею, если у вас есть, или если я ошибаюсь и не должен использовать пространства имен в этом случае.

Спасибо

1 Ответ

1 голос
/ 13 сентября 2011

Да, пространства имен идеально подходят для того, что вы делаете. Просто сохраните данные конфигурации, такие как электронные письма администратора, в записи конфигурации для каждого домена и сохраните все записи для данного домена в пространстве имен, названном в честь этого домена.

...