【发布时间】:2012-04-06 13:07:49
【问题描述】:
我正在使用最新的 Google App Engine (GAE) 环境提供的最新工具,即 Django 1.3 via
libraries:
- name: django
version: "1.3"
按照此处 GAE 文档的说明。
尽管如此,尽管我发现很多链接讨论如何使用强大的 GAE-Django 组合发送祝福的 HTTP500 电子邮件,但所有这些链接都已过时,因为它们要么太旧要么使用“附加”工具,如 AppEngineHelper 或 django -nonrel。
回到我的问题:我设置了我的 settings.py 以遵循 Django 文档说明 here,因为在 GAE opening sockets is restricted 上,我最终得到了这个回溯:
ERROR 2012-03-21 23:11:15,855 base.py:209] Internal Server Error: /contact/
Traceback (most recent call last):
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/josvic/dev/qdsa/gae/apputil/decorators.py", line 14, in wrapper
output = func(request, *args, **kw)
File "/home/josvic/dev/qdsa/gae/qdcom/views/contact.py", line 26, in __call__
return self.f(request, *args, **kwargs)
File "/home/josvic/dev/qdsa/gae/qdcom/views/contact.py", line 59, in contact_page
msg.send()
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/mail/message.py", line 251, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/mail/backends/smtp.py", line 79, in send_messages
new_conn_created = self.open()
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/mail/backends/smtp.py", line 42, in open
local_hostname=DNS_NAME.get_fqdn())
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/mail/utils.py", line 16, in get_fqdn
self._fqdn = socket.getfqdn()
AttributeError: 'module' object has no attribute 'getfqdn'
这就是问题所在。我们有规避这种情况的标准方法吗?
我唯一能想到的绕过这个问题的方法是使用一个使用 GAE 标准邮件 API 的自定义 500error 处理程序。
【问题讨论】:
-
django-nonrel 是如何“腐烂”的?这是一个完全维护的项目,拥有所有者和贡献者。什么意思?
-
@DanielRoseman 嗨,丹尼尔。感谢您的评论。我用“附加”代替了“腐烂”。你说得对。我的意思是“衰减”,因为使用 Python2.7 环境和 CloudSQL,您根本不需要 django-nonrel 来运行传统的 Django 应用程序,也就是说,我的意思更多的是“衰减”用例而不是衰减工具,因为现在您可以在 GAE 上有一个关系数据库后端。 django-nonrel 旨在与 noSQL 数据库一起使用,而不仅仅是与 GAE 一起使用;你是对的。