今天在运行的django的时候一直提示”系统错误“,如下
except Exception, ex:
logger.error(printException())
return render_string("系统错误!")
便想当然的加入
except Exception, ex:
logger.error(printException())
print ex
return render_string("系统错误!")
可是一直没有输出错误原因,反复多次,竟然出现apache错误,真是,五味杂陈啊!
结果童鞋告诉我,python中print 和php中的echo完全不一样,没有输出到标准输出中,得用HttpResponse输出
至于上面那个问题在删除所有.pyc文件并重启服务器后正常,其次还有python对齐问题,没有对齐照样会报错
注:好多奇怪的问题,在确认代码正确的情况下,可以通过删除项目中所有.pyc文件(清除缓存),再重启apache生效
find . -iname '*.pyc' -delete
我在更改django代码后,只有在重启服务器下才能生效
原因: mod_python 运行一个开发服务器
因为 mod_python 缓存预载入了 Python 的代码,当在 mod_python 上发布 Django 站点时,你每 改动了一次代码都要需要重启 Apache 一次。 这还真是件麻烦事,所以这有个办法来避免它: 只要 加入MaxRequestsPerChild 1 到配置文件中强制 Apache 在每个请求时都重新载入所有的 代码。 但是不要在产品服务器上使用这个指令,这会撤销 Django 的特权。
http://www.zhihu.com/question/21016845
http://www.cnblogs.com/sky20081816/p/3309925.html
http://djangobook.py3k.cn/2.0/chapter12/
http://blog.csdn.net/orochihuang/article/details/8500579 apache MaxRequestsPerChild设置
https://mike.tig.as/blog/2010/09/14/pdb/ python pdb
linux下利用django自带的server进行调试
python manage.py runserver IP:PORT