记录使用 Django 开发中遇到的问题,备用
1. 版本要选好,最好安装上 pip,可以省很多麻烦
2. 如果使用 Postgresql,选 8.1 之后的版本,免去 Retruning 之类的错误
3. 如果使用 easy_install 安装 Django 的第三方包,但使用时出现如下错误:
OSError: [Errno 20] Not a directory: 'xxx/site-packages/django_xxx.egg/xxx/xxx'
可以先用以下方法来非 egg 版本的第三方包:
pip uninstall xx
easy_install --always-unzip xxx
4. 没花心思学习 javascript 导致误事:在 Django 中使用 django_bootstrap3 时,没有在 settings.py 中重设 BOOTSTRAP3 字典变量,导致 jquery 载入两次,调了很久!
5. HTML 语法不熟悉:如果组件的逻辑没问题,但测试失败,可能是 html 小节没注意,比如提交到错误地址之类。另外,JS 的加载顺序很重要!
6. urls.py 配置注意语法 r'^dir' 匹配 domain/dir 会可能会提示 500 内部错误,因为 url 配置中缺少 /
7. Chrome 的开发者工具(F12)中的 Network 功能对于排错很有帮助!
8. It's really not a good idea to programming or working in root mode: when I run celery (with rabbitmq) under non root mode and test task function under root mode, it always throws exception: pickle error, result backend not configured ... faint!
9. show client ip when executing runserver in develop mode:
sudo vim /usr/local/share/python2.7.10/lib/python2./site-packages/django/core/servers/basehttp.py
# change to: msg = "[%s] (%s) " % (self.log_date_time_string(), self.client_address[])
10. show detail error when executing runserver in develop mode:
# Appending the following lines to settings.py
LOGGING = {
'version': ,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'ERROR',
'class': 'logging.StreamHandler',
'stream': sys.stderr
},
},
'loggers': {
'django.request': {
'handlers': ['console'],
'propogate': True,
'level': 'ERROR',
}
}
}