Python 如何在django错误电子邮件中包含服务器主机名?

Python 如何在django错误电子邮件中包含服务器主机名?,python,django,Python,Django,标题大致概括了这个问题。我有一个基于django的站点,在多个服务器之间平衡负载。所有服务器都应该相同,$#%&发生了。。。如果django发送的错误电子邮件包含服务器的主机名,这将非常有用。这将如何实现 p、 如果这有什么区别的话,那就是Python2.7.2上的django 1.3 更新: 我可以得到主机名,这不是问题所在。问题是如何将其添加到错误电子邮件中。Python的socket.gethostname()()是一种方法 from socket import gethostname;

标题大致概括了这个问题。我有一个基于django的站点,在多个服务器之间平衡负载。所有服务器都应该相同,$#%&发生了。。。如果django发送的错误电子邮件包含服务器的主机名,这将非常有用。这将如何实现

p、 如果这有什么区别的话,那就是Python2.7.2上的django 1.3

更新:


我可以得到主机名,这不是问题所在。问题是如何将其添加到错误电子邮件中。

Python的
socket.gethostname()
()是一种方法

from socket import gethostname; print gethostname()
您还可以从
os.uname()
()


将获取“nodename”。

如果需要httpd服务器名称,可以从请求中获取

site_name = request.META['SERVER_NAME']
这不一定是机器的主机名,但它是站点的Apache/IIS指令中的服务器名称别名。或者,如果您绝对需要服务器的计算机名:

import socket
host_name = socket.gethostname()
更新:

现在您已经有了特定服务器的主机名,您可以通过几种方式将其添加到错误电子邮件中。您可以编写自己的错误通知系统,或者如@sdolan所述,您可以在
settings.py
中更改
SERVER\u ADMIN
EMAIL SUBJECT\u PREFIX
指令。或者,您可以更改您的
服务器\u电子邮件
指令。您可以使用
“{0}”.format(socket.gethostname())
语法,也可以使用字符串列表的字符串连接
”。连接(字符串部分列表)

您可以使用或设置

在您的settings.py中:

 import socket
 SERVER_ADMIN = 'alerts+{0}@mydomain.com'.format(socket.gethostname())


这确实是一个有趣的想法,但对这种电子邮件格式的支持并不普遍。对不起,我更喜欢更改电子邮件地址,以便于设置过滤器。。你也可以换个话题;看看我最新的答案。哦,我喜欢那个主题版本。这将使浏览电子邮件和查看邮件来源变得非常容易。我不知道那个特殊的设置+1'd和accepted(也经过编辑,假设是打字错误,应该是EMAIL\u SUBJECT\u PREFIX)当我得到与accepted相同的答案时,LOL被否决了,但没有显示如何连接字符串。他想知道如何发送主机名和错误电子邮件。我想这就是为什么答案是否定的人们是否定的,因为你给出的答案并没有解决这个问题,他已经说,
我可以得到主机名,这不是问题所在。问题是如何将其添加到错误电子邮件中加上,他只想在管理员错误电子邮件中包含主机名。
# settings.py
import socket
SERVER_EMAIL = "".join(['webmaster@', socket.gethostname(), '.com'])
 import socket
 SERVER_ADMIN = 'alerts+{0}@mydomain.com'.format(socket.gethostname())
 import socket
 EMAIL_SUBJECT_PREFIX = '[my_django_app - {0}] '.format(socket.gethostname())