Windows 7
Python 2.7.3
Django 1.5
python manage.py runserver
我正在关注“https://docs.djangoproject.com/en/1.5/intro/tutorial03/”
中提供的教程 在settings.py中使用DEBUG = True正确生成网页。地址
http://127.0.0.1:8000/admin/
显示管理员登录页面。
http://127.0.0.1:8000/polls/
显示'什么事?'项目符号链接。
http://127.0.0.1:8000/polls/1/
显示数字'1'
http://127.0.0.1:8000/polls/2/
显示标准404消息。但是,如果我设置DEBUG = False(并且不执行任何其他操作),那么我在所有地址都会出现500错误!我正在使用开发内部运行服务器。没有回溯错误。服务器日志如下所示:
使用DEBUG = True
0 errors found
March 19, 2013 - 12:01:12
Django version 1.5, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[19/Mar/2013 12:06:41] "GET /admin/ HTTP/1.1" 200 1893
[19/Mar/2013 12:54:55] "GET /polls/ HTTP/1.1" 200 74
[19/Mar/2013 12:55:02] "GET /polls/2/ HTTP/1.1" 404 1577
[19/Mar/2013 12:55:09] "GET /polls/1/ HTTP/1.1" 200 1
Validating models...
使用DEBUG = False
0 errors found
March 19, 2013 - 12:55:21
Django version 1.5, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[19/Mar/2013 12:59:22] "GET /admin/ HTTP/1.1" 500 27
[19/Mar/2013 12:59:25] "GET /polls/ HTTP/1.1" 500 27
[19/Mar/2013 12:59:28] "GET /polls/1/ HTTP/1.1" 500 27
[19/Mar/2013 12:59:34] "GET /polls/2/ HTTP/1.1" 500 27
我的目录结构如下:
1> mysite
2> - mysite
3> - polls
4> - templates
5> - polls
6> - templates
7> - admin
我的'manage.py'是@ 1>所以我知道我必须在以下文件和位置进行编辑。
@ 2> settings.py
@ 2> urls.py
然而:
答:我目前没有'view.py'文件@ 2>,这是一个新文件吗?按照教程后,我目前有一个'view.py'@ 3&gt ;;
B.'404.html'应该进入@ 2>下的新模板目录吗?或两个现有模板目录之一(@ 4>或@ 6>)?我假设自定义'500.html'将进入同一目录。
我很乐意发布您想要查看的更多代码。
答案 0 :(得分:10)
很可能,您忘了在settings file中设置ALLOWED_HOSTS
。
答案 1 :(得分:5)
之前我遇到过同样的问题,我可以通过在我的模板目录中创建404.html来修复此问题,指定有效的ALLOWED_HOSTS并重新启动我的网络服务器
答案 2 :(得分:4)
我有一个类似的问题,并且能够用这么少量的代码修复它,假设你的django项目被命名为mysite:
# mysite/mysite/settings.py
DEBUG = False
ALLOWED_HOSTS = ['localhost']
# Tells your project to find your custom 404.html at mysite/mysite/templates/404.html
INSTALLED_APPS = (..., 'tutorial', ...)
# mysite/mysite/urls.py
handler404 = 'tutorial.views.custom_404'
# mysite/mysite/views.py
from django.shortcuts import render
def custom_404(request):
return render(request, '404.html', {}, status=404)
# mysite/mysite/templates/404.html
<h1>CUSTOM 404 PAGE</h1>
不要忘记重新启动服务器。 = P
目录结构应如下所示:
mysite
- mysite
- settings.py
- urls.py
- views.py
- templates
- 404.html
- polls
- templates
- polls
答案 3 :(得分:0)
尝试像这样运行服务器
python manage.py runserver localhost:8000
如果您希望它可以在所有地址中使用
python manage.py runserver 0.0.0.0:8000
答案 4 :(得分:0)
这是我的案例:
python manage.py collectstatic --noinput
它为我解决了错误。