记录使用 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.7/site-packages/django/core/servers/basehttp.py # change to: msg = "[%s] (%s) " % (self.log_date_time_string(), self.client_address[0])
10. show detail error when executing runserver in develop mode:
# Appending the following lines to settings.py LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console': { 'level': 'ERROR', 'class': 'logging.StreamHandler', 'stream': sys.stderr }, }, 'loggers': { 'django.request': { 'handlers': ['console'], 'propogate': True, 'level': 'ERROR', } } }