[翻译作品]我2018年开始Django开发时踩过的坑

作者:Luan Nguyen 原文地址:https://peeomid.com/blog/2018-01-26-what-i-wish-i-knew-when-i-started-django-development-2018/ 副标题:Django – 当你开始一个新项目时要注意的地方 – 2018年更新 译者:首席IT民工 现在回想起来,如果在开始Django之旅的时候我注意了这几个地方,会省去我大量的时间和精力。 延伸阅读(Too Long To Read): 注意使用cookiecutter-Django 以便上手所提到的大部分东西。 当我开始做web开发时,我是一名普通的php程序员,不屑于老是看文档。经过努力,总能从搜索引擎中找到解决方法(嗯,现在仍然如此)。 让我很不爽的是,有时候各种东西搅和在一起,你很难读懂别人的代码,甚至是几个礼拜前自己写的代码。这一点不可小觑,阅读代码总是花很多时间。 Python(以及Django)的出现解救了我。第一次,我能够轻松地阅读别人的代码了(也不全是,哈哈)。阅读,变得更简单了。事实上,通过阅读别人的代码,我的技能提高了很多。然而,和其他人一样,一开始我犯了很多,尤其是Django相关的错误。 以下是我希望记录下来的东西,对于开始时踩过的那些坑,我会逐一添加。 Cookie cutter Django 每次当我开始一个项目时,总会创建一个什么都没有的空白项目。然后,反复地修改项目,直到出现我希望的设定/结构。 我原以为我只要为新项目建一个代码库,然后继续开发就好了,但实际上维护和更新这个代码库却占用了大量的时间。 cookiecutter-Django 是一个超棒的项目。有了它,你可以在开始项目时就应用很多人称“最佳实践”的东西。它也自带了一些有助于加速开发的常用组件。 Virtualenv 如果你已经看过一些Python文档,你应该见过这个东西。再怎么推荐都不为过啊。 一定要使用virtualenv来分开每个项目的开发环境。即使你开始的时候只有一个项目,不要都放在global里面,并且你很快就有更多的项目的。 当你创建一个新的环境时,可以这样指定Python版本: virtualenv env -p python3 另外,确保你查看一下 virtualenvwrapper,这篇文档能帮助你轻松地管理各种不同的虚拟环境: 在一个地方存储所有的虚拟环境 尽快进入虚拟环境,比如,只要运行workon awesome project就好了 设定好当你进出这些环境时所运行的脚本(简单的例子如:切换到项目所在目录,启动一些东西) 设定之结构 这是另一件重要的事情 — 我是认真的。 常规的开发流程是这个样子:你进行本地开发,然后推送到某种测试服务器,最后上线。 每个环境都有其自身的设定和配置(比方说,本地的数据库配置会不同于生产环境的配置)。 对于特定的东西,尤其是那些敏感信息,可以选择从环境变量来获取。 其他的东西,你可以为不同的环境准备不同的设定文件,如图所示: base.py 包含常见的环境设定;local.py 包含属于本地环境的设定 local.py, staging.py 和 production.py 会导入base.py的设定。你可以借助环境变量来决定要用哪个设定文件。 […]