django 访问问题

1.ubutu12.04 vagrant(虚拟机 -ubutu12.04) python2.7 django 1.10.3

2.安装已经完成。

root@precise32:python manage.py migrate

root@precise32:/usr/local/frist_django# python manage.py runserver 0.0.0.0:8000
Performing system checks...
System check identified no issues (0 silenced).
November 28, 2016 - 08:45:17
Django version 1.10.3, using settings 'frist_django.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

3.django已经启动,但是在访问的时候,只能出现问题。
1)只能使用127.0.0.1:8000 访问,使用localhost:8000和ip:8000都访问不成功
2)django放在虚拟机中,同网段的服务器在访问django时候也报错。

报错内容一般是:

Invalid HTTP_HOST header: '192.168.9.209:8000'. You may need to add u'192.168.9.209' to ALLOWED_HOSTS.
[28/Nov/2016 08:51:00] "GET / HTTP/1.1" 400 60610
Invalid HTTP_HOST header: '192.168.9.209:8000'. You may need to add u'192.168.9.209' to ALLOWED_HOSTS.
[28/Nov/2016 08:54:46] "GET / HTTP/1.1" 400 60610
Invalid HTTP_HOST header: '192.168.9.209:8000'. You may need to add u'192.168.9.209' to ALLOWED_HOSTS.
[28/Nov/2016 09:05:45] "GET / HTTP/1.1" 400 60610

其中0.0.0.0:8000中的0.0.0.0 不是代表一切ip吗?

当前关于debug设置为:
DEBUG = True
ALLOWED_HOSTS = []

阅读 17.1k
3 个回答

你可以设置ALLOWED_HOSTS = ['*'],但是强烈不推荐这么做。如果你的DEBUG设置为False,则必须设置ALLOWED_HOSTS. 在开发阶段可以设置DEBUG为True。查看文档发现

When DEBUG is True and ALLOWED_HOSTS is empty, the host is validated against ['localhost', '127.0.0.1', '[::1]'].

在DEBUG的也有相关描述

Finally, if DEBUG is False, you also need to properly set the ALLOWED_HOSTS setting. Failing to do so will result in all requests being returned as “Bad Request (400)”.

参考文档 https://docs.djangoproject.co...

问题解决:
修改django项目中settings.py文件:
DEBUG = True
ALLOWED_HOSTS = ['127.0.0.1','192.168.9.209','localhost'] ----> 可以访问网站的ip

具体详情参考:一楼的文档 ! 谢谢大家
中文文档地址:http://python.usyiyi.cn/trans...

我一般会在 Vagrantfile 里这样配置网络

config.vm.network "private_network", ip: "192.168.33.10"

然后运行 python manage.py runserver 0.0.0.0:8000

最后访问 http://192.168.33.10:8000


我的 Vagrantfile 如下:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/trusty64"

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "1024"
  end

end
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进