名称空间可以启用多个域吗?

时间:2011-09-13 01:25:46

标签: python google-app-engine namespaces google-cloud-datastore

我的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 个答案:

答案 0 :(得分:1)

是的,命名空间非常适合您正在做的事情。只需在每个域配置记录中存储管理电子邮件等配置数据,并将给定域的所有记录存储在以该域命名的命名空间中。