Django - 如何简单地获取域名? [复制]
Posted
技术标签:
【中文标题】Django - 如何简单地获取域名? [复制]【英文标题】:Django - How to simply get domain name? [duplicate] 【发布时间】:2015-07-08 20:29:56 【问题描述】:首先,我想说我是 Django 的初学者。
我正在寻找一种简单的方法来检索我的 Django 网站的域名。
我想在我的 settings.py 中执行此操作。我已经尝试过使用这样的套接字:
socket.gethostname()
但这不能正常工作。
【问题讨论】:
【参考方案1】:import platform
platform.node()
来自docs:
"返回计算机的网络名称(可能不是完全限定的!)。 如果无法确定值,则返回空字符串。"
【讨论】:
我无法理解这在虚拟主机/服务器块的情况下如何工作。可以?如果是……怎么办? 不适用于虚拟主机。【参考方案2】:如果您使用的是django.contrib.sites
框架:
from django.contrib.sites.models import Site
your_domain = Site.objects.get_current().domain
参考:https://docs.djangoproject.com/en/1.8/ref/contrib/sites/
【讨论】:
【参考方案3】:如果你有一个请求对象,做
request.META['HTTP_HOST']
这将返回主机名
【讨论】:
最好使用request.get_host()
(docs link),因为 HTTP_HOST 不是查找主机名的唯一方法。以上是关于Django - 如何简单地获取域名? [复制]的主要内容,如果未能解决你的问题,请参考以下文章