Django项目中的站点域问题

时间:2017-11-16 05:46:54

标签: python django

我用以下命令启动了django服务器:

python manage.py runserver 192.168.31.79:8030

当我使用以下代码时,

   from django.contrib.sites.models import Site 
   current_site = Site.objects.get_current()
   print (current_site.domain)

结果将是192.168.31.79: 8000 ,为什么端口不是8030?谁能为我解释一下?我怎么能通过编码检索192.168.31.79:8030。非常感谢。

1 个答案:

答案 0 :(得分:0)

使用Site解析get_current时,Django将首先检查设置文件中是否设置了SITE_ID。如果有SITE_ID,它将返回domain字段中存储的内容(在SITE_CACHE中获取缓存版本或将其添加到缓存并返回)。

如果SITE_ID不存在,Django将使用request.get_host()解析主机并首先查询缓存中是否存在domain,然后检查它是否在{{1}中对象。

如果这不会产生结果,则会删除Site并以相同方式再次检查。

我会尝试查看每个port个对象,看看该端口是否已进入Site。如果没有查看domain中存储的内容。

https://docs.djangoproject.com/en/dev/ref/contrib/sites/#django.contrib.sites.shortcuts.get_current_site

上的文档