【发布时间】:2011-09-13 01:25:45
【问题描述】:
我的 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"])
如果您有任何想法,或者我弄错了,在这种情况下不应该使用命名空间,我很高兴知道。
谢谢
【问题讨论】:
标签: python google-app-engine namespaces google-cloud-datastore