Python论坛  - 讨论区

标题:[python-chinese] django中如何调试 url 分派错误

2007年03月29日 星期四 19:35

Neil(木野狐) chenrong2003在gmail.com
星期四 三月 29 19:35:27 HKT 2007

大家好,
我用 Django 构建的程序在本机 (Windows XP) 运行正常,但部署到 linux 服务器后,今天发现 url
配置里有一些能生效,有一些却总是提示 500 错误。
不知道该如何入手调试?

之前相关功能都是正常的。

Traceback (most recent call last):

  File "/usr/local/lib/python2.4/site-packages/django/core/servers/basehttp.py",
line 272, in run
    self.result = application(self.environ, self.start_response)

  File "/usr/local/lib/python2.4/site-packages/django/core/servers/basehttp.py",
line 614, in __call__
    return self.application(environ, start_response)

  File "/usr/local/lib/python2.4/site-packages/django/core/handlers/wsgi.py",
line 189, in __call__
    response = self.get_response(request)

  File "/usr/local/lib/python2.4/site-packages/django/core/handlers/base.py",
line 126, in get_response
    return callback(request, **param_dict)

  File "/usr/local/lib/python2.4/site-packages/django/views/defaults.py",
line 88, in server_error
    t = loader.get_template(template_name) # You need to create a
500.html template.

  File "/usr/local/lib/python2.4/site-packages/django/template/loader.py",
line 79, in get_template
    source, origin = find_template_source(template_name)

  File "/usr/local/lib/python2.4/site-packages/django/template/loader.py",
line 72, in find_template_source
    raise TemplateDoesNotExist, name

TemplateDoesNotExist: 500.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 19:59

风向标 vaneoooo在gmail.com
星期四 三月 29 19:59:07 HKT 2007

¸øÄã¿´ÏÂÎҼǼµÄ²¿Êð¼ÍÒª


*1 apacheÅäÖ÷½Ã棬¶ÀÁ¢Õ¾µãÐèµ¥¶ÀÅäÖÃsys.path·¾¶£¬Ê¹djangoÄܹ»ÕýÈ·ÕÒµ½ÏîÄ¿µÄsettingsÎļþ*

*2 ÉÏ´«Îļþ·½Ã棬Ðè×¢ÒâĿ¼ÊôÐÔ£¨Èç¹û»ùÓÚLinux£©£¬¶à´ÎÉÏ´«³öÏÖIO´íÎó¶¼ÊÇÊÜȨÏÞÓ°Ïì*

*3 ÉÏ´«Îļþ·½Ã棬ÐÞ¸ÄsettingsÎļþ¶à´¦ÊôÐÔ£¬°üÀ¨MEDIA_ROOT¡¢GROUP_ICON_PATH ¡¢USER_ICON_PATH
£¬ºóÃæÁ½¸ö×îºÃÐÞ¸ÄΪ¾ø¶Ô·¾¶¡£*

*4 settings·½Ã棬ÐèÐÞ¸ÄʱÇøGTM-8 £¬ÐÞ¸ÄÓïÑÔzh-cn£¬×îºÃÓÉdjangoÉú³ÉÏîÄ¿°ü£¬±£Ö¤SECRET_KEYµÄËæ»úÐÔ£¬Ç¿»¯°²È«ÐÔ*

*5 apacheÒÔϲ¿·Ö£º*

*
    SetHandler None
*

*ËùÓо²Ì¬ÄÚÈݱØÐëÖ÷ÒⲿÊð£¬ÅäºÏ*

*Alias /js /home/******

*·¾¶£¬ÒÔ½â¾ö¾²Ì¬ÄÚÈÝÎÞ·¨¶ÁÈ¡µÄÎÊÌâ*



ÒÔÉÏÖ÷ÒªÊÇÕë¶Ô×Ô¼ºµÄ³ÌÐòдµÄ£¬Äã¿ÉÒÔ°´ÕÕÕâ¸ö¼ì²éÒ»ÏÂ
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070329/03911e9c/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 20:05

Neil(木野狐) chenrong2003在gmail.com
星期四 三月 29 20:05:44 HKT 2007

谢谢风向标,
忘记说了,我的代码目前在服务器上也是用的 dev server, 还没上 apache.
所以问题肯定和 apache 无关。
静态资源是可以访问的。

其他朋友如果有相关经验也请点拨一下,谢谢。


在 07-3-29,风向标<vaneoooo在gmail.com> 写道:
> 给你看下我记录的部署纪要
>
>
>
> 1 apache配置方面,独立站点需单独配置sys.path路径,使django能够正确找到项目的settings文件
>
> 2 上传文件方面,需注意目录属性(如果基于Linux),多次上传出现IO错误都是受权限影响
>
> 3 上传文件方面,修改settings文件多处属性,包括MEDIA_ROOT、GROUP_ICON_PATH
> 、USER_ICON_PATH ,后面两个最好修改为绝对路径。
>
> 4 settings方面,需修改时区GTM-8
> ,修改语言zh-cn,最好由django生成项目包,保证SECRET_KEY的随机性,强化安全性
>
> 5 apache以下部分:
>
> 
>     SetHandler None
> 
>
> 所有静态内容必须主意部署,配合
>
> Alias /js /home/*****
>
> 路径,以解决静态内容无法读取的问题
>
>
>
> 以上主要是针对自己的程序写的,你可以按照这个检查一下
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 20:22

yi huang yi.codeplayer在gmail.com
星期四 三月 29 20:22:24 HKT 2007

On 3/29/07, Neil(木野狐) <chenrong2003 at gmail.com> wrote:
>
> 大家好,
> 我用 Django 构建的程序在本机 (Windows XP) 运行正常,但部署到 linux 服务器后,今天发现 url
> 配置里有一些能生效,有一些却总是提示 500 错误。
> 不知道该如何入手调试?
>
> 之前相关功能都是正常的。
>
> Traceback (most recent call last):
>
> File
> "/usr/local/lib/python2.4/site-packages/django/core/servers/basehttp.py",
> line 272, in run
>    self.result = application(self.environ, self.start_response)
>
> File
> "/usr/local/lib/python2.4/site-packages/django/core/servers/basehttp.py",
> line 614, in __call__
>    return self.application(environ, start_response)
>
> File
> "/usr/local/lib/python2.4/site-packages/django/core/handlers/wsgi.py",
> line 189, in __call__
>    response = self.get_response(request)
>
> File
> "/usr/local/lib/python2.4/site-packages/django/core/handlers/base.py",
> line 126, in get_response
>    return callback(request, **param_dict)
>
> File "/usr/local/lib/python2.4/site-packages/django/views/defaults.py",
> line 88, in server_error
>    t = loader.get_template(template_name) # You need to create a
> 500.html template.
>
> File "/usr/local/lib/python2.4/site-packages/django/template/loader.py",
> line 79, in get_template
>    source, origin = find_template_source(template_name)
>
> File "/usr/local/lib/python2.4/site-packages/django/template/loader.py",
> line 72, in find_template_source
>    raise TemplateDoesNotExist, name
>
> TemplateDoesNotExist: 500.html
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese


强烈建议你配好邮件服务器,当 DEBUG 为 false 时,发生异常时,会将详细异常信息发送邮件。
你上面给的那些 traceback 并不是真正发生的异常的 traceback ,那是发生 500 错误时,django 试图找到
500.html模板,没有找到模板而发生的异常。

而关于发生邮件服务器,这里有一个小技巧:http://www.djangosnippets.org/snippets/96/

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070329/dd9a7237/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 20:29

Neil(木野狐) chenrong2003在gmail.com
星期四 三月 29 20:29:37 HKT 2007

yihuang,
谢谢,很有用的技巧。我试试看能否解决我的问题。

在 07-3-29,yi huang<yi.codeplayer在gmail.com> 写道:
>
>
> 强烈建议你配好邮件服务器,当 DEBUG 为 false 时,发生异常时,会将详细异常信息发送邮件。
> 你上面给的那些 traceback 并不是真正发生的异常的 traceback ,那是发生 500 错误时,django 试图找到 500.html
> 模板,没有找到模板而发生的异常。
>
> 而关于发生邮件服务器,这里有一个小技巧:http://www.djangosnippets.org/snippets/96/
>
> --
> http://codeplayer.blogspot.com/
> _______________________________________________

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 20:40

yi huang yi.codeplayer在gmail.com
星期四 三月 29 20:40:28 HKT 2007

我刚才也试了一下(刚才回复的时候我也还没试过),发现很简单:

settings.py 里面的 ADMINS 里面的那行解除注释。然后启动这个 smtp
服务器<http://www.djangosnippets.org/snippets/96/> ,就
ok 了!
当然如果使用真正的 smtp 服务器的话就要多配一些东西了,文档里都说得蛮清楚的。

On 3/29/07, Neil(木野狐) <chenrong2003 at gmail.com> wrote:
>
> yihuang,
> 谢谢,很有用的技巧。我试试看能否解决我的问题。
>
> 在 07-3-29,yi huang<yi.codeplayer at gmail.com> 写道:
> >
> >
> > 强烈建议你配好邮件服务器,当 DEBUG 为 false 时,发生异常时,会将详细异常信息发送邮件。
> > 你上面给的那些 traceback 并不是真正发生的异常的 traceback ,那是发生 500 错误时,django 试图找到
> 500.html
> > 模板,没有找到模板而发生的异常。
> >
> > 而关于发生邮件服务器,这里有一个小技巧:http://www.djangosnippets.org/snippets/96/
> >
> > --
> > http://codeplayer.blogspot.com/
> > _______________________________________________
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070329/d5c834d9/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 21:25

Neil(木野狐) chenrong2003在gmail.com
星期四 三月 29 21:25:39 HKT 2007

这个 Code Snippet 无疑是最有用的一个之一!
我如法配置了之后发现很快就生成了一个 .eml 文件。其内容揭示了错误的原因。
原来我的 urls.py 没有错,错的是其中指向的一个 view,那个文件里我 import
了一个今天新加的模块,而这个新加的模块忘记了上传到服务器上,结果导致 import 失败!

如果不是这个办法真的怎么也想不到这个原因。感觉这里 django 处理的有失妥当,如果能忽略错误的 views, 继续处理配置正确的
urls, 而把不能导入的错误信息用某种方式输出到 log里面不是更好吗?

非常感谢 yihuang.

在 07-3-29,yi huang<yi.codeplayer在gmail.com> 写道:
> 我刚才也试了一下(刚才回复的时候我也还没试过),发现很简单:
>
> settings.py 里面的 ADMINS 里面的那行解除注释。然后启动这个 smtp 服务器 ,就 ok 了!
> 当然如果使用真正的 smtp 服务器的话就要多配一些东西了,文档里都说得蛮清楚的。
>
> On 3/29/07, Neil(木野狐) <chenrong2003在gmail.com> wrote:
> >
> > yihuang,
> > 谢谢,很有用的技巧。我试试看能否解决我的问题。
> >
> > 在 07-3-29,yi huang< yi.codeplayer在gmail.com> 写道:
> > >
> > >
> > > 强烈建议你配好邮件服务器,当 DEBUG 为 false 时,发生异常时,会将详细异常信息发送邮件。
> > > 你上面给的那些 traceback 并不是真正发生的异常的 traceback ,那是发生 500 错误时,django 试图找到
> 500.html
> > > 模板,没有找到模板而发生的异常。
> > >
> > >
> 而关于发生邮件服务器,这里有一个小技巧:http://www.djangosnippets.org/snippets/96/
> > >
> > > --
> > > http://codeplayer.blogspot.com/
> > > _______________________________________________
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> > Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>
>
>
> --
> http://codeplayer.blogspot.com/
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 21:53

vcc vcc在163.com
星期四 三月 29 21:53:23 HKT 2007

你把DEBUG打开岂不是更简单、更有用一点? ;-)

在 2007-03-29四的 21:25 +0800,Neil(木野狐)写道:
> 这个 Code Snippet 无疑是最有用的一个之一!
> 我如法配置了之后发现很快就生成了一个 .eml 文件。其内容揭示了错误的原因。
> 原来我的 urls.py 没有错,错的是其中指向的一个 view,那个文件里我 import
> 了一个今天新加的模块,而这个新加的模块忘记了上传到服务器上,结果导致 import 失败!
> 
> 如果不是这个办法真的怎么也想不到这个原因。感觉这里 django 处理的有失妥当,如果能忽略错误的 views, 继续处理配置正确的
> urls, 而把不能导入的错误信息用某种方式输出到 log里面不是更好吗?
> 
> 非常感谢 yihuang.
> 
> 在 07-3-29,yi huang<yi.codeplayer at gmail.com> 写道:
> > 我刚才也试了一下(刚才回复的时候我也还没试过),发现很简单:
> >
> > settings.py 里面的 ADMINS 里面的那行解除注释。然后启动这个 smtp 服务器 ,就 ok 了!
> > 当然如果使用真正的 smtp 服务器的话就要多配一些东西了,文档里都说得蛮清楚的。
> >
> > On 3/29/07, Neil(木野狐) <chenrong2003 at gmail.com> wrote:
> > >
> > > yihuang,
> > > 谢谢,很有用的技巧。我试试看能否解决我的问题。
> > >
> > > 在 07-3-29,yi huang< yi.codeplayer at gmail.com> 写道:
> > > >
> > > >
> > > > 强烈建议你配好邮件服务器,当 DEBUG 为 false 时,发生异常时,会将详细异常信息发送邮件。
> > > > 你上面给的那些 traceback 并不是真正发生的异常的 traceback ,那是发生 500 错误时,django 试图找到
> > 500.html
> > > > 模板,没有找到模板而发生的异常。
> > > >
> > > >
> > 而关于发生邮件服务器,这里有一个小技巧:http://www.djangosnippets.org/snippets/96/
> > > >
> > > > --
> > > > http://codeplayer.blogspot.com/
> > > > _______________________________________________
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese at lists.python.cn
> > > Subscribe: send subscribe to
> > python-chinese-request at lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > > Detail Info:
> > http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> > --
> > http://codeplayer.blogspot.com/
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to
> > python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info:
> > http://python.cn/mailman/listinfo/python-chinese
> >
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 22:01

yi huang yi.codeplayer在gmail.com
星期四 三月 29 22:01:22 HKT 2007

>
> 感觉这里 django 处理的有失妥当,如果能忽略错误的 views, 继续处理配置正确的
> urls, 而把不能导入的错误信息用某种方式输出到 log里面不是更好吗?


django 本身好像不用 log 的,都是通过发生邮件的方式记录错误,我想发邮件有时候比 log 更有效。而且通过现在这个 smtp
服务器,不就等于是 log 了吗,呵呵。

你应该为服务器异常写一个 500.html 模板了 ;-)

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070329/93944a86/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 22:36

Neil(木野狐) chenrong2003在gmail.com
星期四 三月 29 22:36:35 HKT 2007

呵呵,我写了 500 和 404 模板的。可是出错了之后为了看到错误信息,才故意去掉了。

在 07-3-29,yi huang<yi.codeplayer在gmail.com> 写道:
>
> > 感觉这里 django 处理的有失妥当,如果能忽略错误的 views, 继续处理配置正确的
> > urls, 而把不能导入的错误信息用某种方式输出到 log里面不是更好吗?
>
> django 本身好像不用 log 的,都是通过发生邮件的方式记录错误,我想发邮件有时候比 log 更有效。而且通过现在这个 smtp
> 服务器,不就等于是 log 了吗,呵呵。
>
> 你应该为服务器异常写一个 500.html 模板了 ;-)
>
> --
> http://codeplayer.blogspot.com/

======

DEBUG 信息打开是否能看到真实错误现在不敢确定,下次我一定试一下。谢谢。


vcc <vcc在163.com>  致 python-chinese
 显示详细信息  21:53 (41分钟前)

你把DEBUG打开岂不是更简单、更有用一点? ;-)

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 22:56

yi huang yi.codeplayer在gmail.com
星期四 三月 29 22:56:22 HKT 2007

>
> 呵呵,我写了 500 和 404 模板的。可是出错了之后为了看到错误信息,才故意去掉了。


这个没有关系的。DEBUG false 的时候,有 500.html 模板也还是会发邮件,DEBUG true 的时候,有 500.html也不会显示。

DEBUG 信息打开是否能看到真实错误现在不敢确定,下次我一定试一下。谢谢。
>

打开 DEBUG 自然是方便多了,前面的方法都是在不方便打开 DEBUG (比如部署在 production环境下)的时候起作用的。

On 3/29/07, Neil(木野狐) <chenrong2003 at gmail.com> wrote:
>
> 呵呵,我写了 500 和 404 模板的。可是出错了之后为了看到错误信息,才故意去掉了。
>
> 在 07-3-29,yi huang<yi.codeplayer at gmail.com> 写道:
> >
> > > 感觉这里 django 处理的有失妥当,如果能忽略错误的 views, 继续处理配置正确的
> > > urls, 而把不能导入的错误信息用某种方式输出到 log里面不是更好吗?
> >
> > django 本身好像不用 log 的,都是通过发生邮件的方式记录错误,我想发邮件有时候比 log 更有效。而且通过现在这个 smtp
> > 服务器,不就等于是 log 了吗,呵呵。
> >
> > 你应该为服务器异常写一个 500.html 模板了 ;-)
> >
> > --
> > http://codeplayer.blogspot.com/
>
> ======
>
> DEBUG 信息打开是否能看到真实错误现在不敢确定,下次我一定试一下。谢谢。
>
>
> vcc <vcc at 163.com>  致 python-chinese
> 显示详细信息  21:53 (41分钟前)
>
> 你把DEBUG打开岂不是更简单、更有用一点? ;-)
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070329/6c00d75d/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号