项目在实际发布的时候,需要我们关闭调试功能,保障网站安全。设置在settings.py文件中,将DEBUG=True改为False。
大部分人在改完这项后就尝试重启django的服务,却发现网站返回错误,页面显示“Internal Server Error”。
通过谷歌开发者工具或者查看服务器日志等其他手段可以发现,此刻页面返回状态码为500。
通过在网上查找答案,发现这里少设置了一步,ALLOWED_HOSTS的官方文档 里面指出:
When DEBUG is True or when running tests, host validation is disabled; any host will be accepted. Thus it’s usually only necessary to set it in production.
大体意思是,DEBUG设置为True或者运行在测试环境中,关于host的验证是关闭的,任意的host都可以被接受。在实际的应用环境中这项(ALLOWED_HOSTS)是必须设定的。
因此,在将DEBUG置位为True的时候,需要额外设置这一项。加入要部署的网站为200.200.200.200,则设置
ALLOWED_HOSTS = ['200.200.200.200']。
更多的参考可以参看:
http://getluky.net/2013/02/21/django-debugfalse-and-allowed_hosts/
http://stackoverflow.com/questions/238081/how-do-you-log-server-errors-on-django-sites/6395837#6395837