【问题标题】:Django - How to simply get domain name? [duplicate]Django - 如何简单地获取域名? [复制]
【发布时间】:2015-07-08 20:29:56
【问题描述】:

首先,我想说我是 Django 的初学者。

我正在寻找一种简单的方法来检索我的 Django 网站的域名。

我想在我的 settings.py 中执行此操作。我已经尝试过使用这样的套接字:

socket.gethostname()

但这不能正常工作。

【问题讨论】:

    标签: python django host hostname


    【解决方案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 不是查找主机名的唯一方法。
      猜你喜欢
      • 2014-05-04
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      相关资源
      最近更新 更多