社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django:当你开始一个新项目时要注意的地方 - 2018年更新

Python程序员 • 6 年前 • 759 次点击  

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。


现在回想起来,如果在开始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的设定。你可以借助环境变量来决定要用哪个设定文件。


manage.py的例子:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.local')


如果你使用cookiecutter-django,这些是已经存在的!


从一开始自定义用户模型


始终从一开始就选择自定义用户模型。


你可能会觉得对于简单的项目,没必要开始的时候需要一个自定义的用户模型(我原来也这样认为)


可是呢,如果项目持续一段时候后,你很有可能很快需要转到用户模型,以便

引入额外的东西。迁移到用户模型并不总是一件有乐趣的任务。


用于监控的Sentry


用Sentry来进行监控。真的,很简单很容易。你能获得些什么?

  • 当你的站点有问题时,会有通知邮件

  • 管理你的问题(给事情打勾,哈哈)

  • 问题的统计


几个可以使用的App


  • Django-extensions 包含很多东西,我并非都用过。比如:

  • runserver_plus: 不是常规的runserver,而是用来本地运行服务的。你会接触到很好看的调试界面,每步都提供交互式Python Shell! (这点是最吸引我的)

  • show_urls: 显示所有项目的urls,和他们指向的视图。

  • django-debug-toolbar 调试工具栏可以显示很多东西,比如调试消息,比如执行了那些SQL查询。

  • django_builder 你只需要引入你的模型,然后它会生成各种东西,是的,有url, 视图,表单,测试。


英文原文:https://peeomid.com/blog/2018-01-26-what-i-wish-i-knew-when-i-started-django-development-2018/
译者:泰然



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/4dbQlMrUdb
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/8298
 
759 次点击