首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django tutorials: 500 @ debug=false

django tutorials: 500 @ debug=false
EN

Stack Overflow用户
提问于 2013-03-19 20:04:53
回答 5查看 9.4K关注 0票数 6

Windows 7

Python 2.7.3

Django 1.5

python manage.py运行服务器

我正在遵循'https://docs.djangoproject.com/en/1.5/intro/tutorial03/‘上提供的教程。

在settings.py中使用DEBUG=True可以正确地生成网页。地址

代码语言:javascript
复制
http://127.0.0.1:8000/admin/  

显示管理员登录页面。

代码语言:javascript
复制
http://127.0.0.1:8000/polls/  

显示“What‘s up?”项目符号链接。

代码语言:javascript
复制
http://127.0.0.1:8000/polls/1/  

显示数字“1”

代码语言:javascript
复制
http://127.0.0.1:8000/polls/2/  

显示标准的404消息。然而,如果我设置了DEBUG=False (不做任何其他事情),那么我在所有地址上都会得到一个500错误!我使用的是开发内部runserver。没有回溯错误。服务器日志如下所示:

使用DEBUG=True

代码语言:javascript
复制
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

代码语言:javascript
复制
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  

我的目录结构如下:

代码语言:javascript
复制
1> mysite  
2>     - mysite  
3>     - polls  
4>         - templates  
5>             - polls  
6>     - templates  
7>         - admin  

我的'manage.py‘是@ 1>,所以我知道我必须在以下文件和位置中进行编辑。

@ 2> settings.py

@ 2> urls.py

但是:

答:我当前没有@ 2>的'view.py‘文件,这会是一个新文件吗?学习完本教程后,我现在有了一个'view.py‘@ 3>;

B.应该将“404.html”放入@2>下的新模板目录还是现有的两个模板目录(@4>或@6>)之一?我假设一个自定义的'500.html‘应该放在同一个目录中。

我很乐意发布更多你想看的代码。

EN

回答 5

Stack Overflow用户

发布于 2013-03-19 20:09:52

很可能,您忘记了在settings file中设置ALLOWED_HOSTS

票数 10
EN

Stack Overflow用户

发布于 2013-03-21 04:34:31

我之前也遇到过同样的问题,我在我的模板目录中创建了404.html,指定了有效的ALLOWED_HOSTS并重新启动了我的was服务器,从而修复了这个问题

票数 5
EN

Stack Overflow用户

发布于 2013-03-21 04:58:48

我遇到了类似的问题,并能够用最少的代码修复它,假设您的django项目名为mysite:

代码语言:javascript
复制
# 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

目录结构应如下所示:

代码语言:javascript
复制
mysite  
    - mysite
        - settings.py
        - urls.py
        - views.py
        - templates
            - 404.html  
    - polls  
        - templates  
            - polls
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15499032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档