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