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 - 如何简单地获取域名? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 JavaScript 获取域名? [复制]

如何在 Django 模板中连接内容块? [复制]

Django:如何获取在 url 中传递的参数值? [复制]

如何在 django 中仅获取表的特定列? [复制]

如何获取某个网站IP地址?

如何获取object.filter()django中的所有字段