2012-03-21 26 views
1

我通過什麼是送Django的500錯誤郵件在谷歌應用程序引擎的最佳方法?

libraries: 
- name: django 
    version: "1.3" 

使用最新的谷歌應用程序引擎(GAE)環境提供的最新工具,即Django的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處理程序。

我能想到的
+0

如何Django的nonrel「腐朽」?這是一個完全維護的項目,與業主和貢獻者。你什麼意思? – 2012-03-22 01:49:19

+0

@DanielRoseman嗨丹尼爾。感謝您的評論。我用「額外」取代了「衰退」。你是對的。我的意思是「衰減」,因爲在Python2.7環境和CloudSQL中,你根本不需要django-nonrel來運行傳統的Django應用程序,也就是說,從現在開始,我的意思是更多的是「衰減」的用例,而不是腐朽的工具。在GAE上可以有一個關係數據庫後端。 django-nonrel意味着與noSQL db一起使用,而不僅僅用於GAE;你是對的。 – 2012-03-22 10:30:46

回答

1

兩個選項:

使用GAE標準郵件API,從一個500錯誤處理程序也差不太多
  1. 定製日誌處理程序,但你不必重寫觀點:https://docs.djangoproject.com/en/dev/topics/logging/

  2. 更換電子郵件後端。我不是100%肯定這是有效的,但我懷疑它會。有一個已經在Django的nonrel項目(順便說一句,仍然保持) https://github.com/django-nonrel/djangoappengine 看在mail.py

+0

僅供參考,我沒去選擇2 – 2012-03-22 19:44:03

+0

我假設它的工作沒有問題? – dragonx 2012-03-23 15:54:58

+0

我已經選擇了1!方案2沒有解決,因爲我最初的問題結束了。我做了一個特定的GAE應用程序,所以很容易回到默認的Django處理程序,以防我決定切換到其他提供程序而不是AppEngine。 – 2012-03-24 15:47:31

相關問題