⽤Python打造⼀个CRM系统(⼆)
在上⼀篇中介绍了CRM和Django,在本篇中将聊聊Django的最佳实践。
总的来说就是遵循Django的设计理念:松耦合、代码精简、快速开发、DRY、明确优于隐式、⼀致性等。下⾯从开发环境、项⽬组织结构、调试等⼏个⽅⾯进⾏展开。
开发环境
通常在项⽬开发的过程中,除了安装Python和Django,还需要选择虚拟环境、开发⼯具、版本控制等。
虚拟环境
Python开发需要安装第三⽅库,⽐如Django本⾝也是⼀个第三⽅库,当本地安装了其他库或有多个项⽬时容易导致依赖混乱或冲突。虚拟环境可以为⼀个项⽬提供独⽴的Python环境。
⽬前最流⾏的 Python 虚拟环境配置⼯具是virtualenv。⽽Python从3.3版本之后也内置了venv命令进⾏包管理,功能和virtualenv 类似。还有⼀个虚拟管理⼯具是pipenv,它是结合了pip和virtualenv两者的功能。
这⾥使⽤virtualenv创建和管理虚拟环境。virtualenv的安装命令如下:
$ pip install virtualenv
安装完成后使⽤virtualenv name创建虚拟环境,这⾥创建⼀个名为venv的虚拟环境。
$ virtualenv venv
创建完成后会在当前⽬录下⽣成⼀个venv的⽂件夹,使⽤source venv/bin/activate命令激活该虚拟环境。激活之后,可以⽤pip freeze > 命令将当前虚拟环境中的Python库及其版本导出到⽂件中。在服务器上部署时使⽤pip install -安装所有的依赖库就可以了。
开发⼯具
正所谓“⼯欲善其事,必先利其器”,在开始学习Python的时候可以选择Python的IDLE或⽂本编辑⼯具编写代码。但真要开发项⽬的时候还是需要⼀个IDE才能⾼效的编写代码和进⾏调试。
对初学者来说,PyCharm是不错的选择,其社区版是免费的()。PyCharm⼏乎包含了项⽬开发和调试中所需的所有功能,确定是启动有点慢,运⾏消耗内存⽐较多,不过对现在的电脑配置来说问题不到。
除了PyCharm之外还可以使⽤VSCode、Sublime等编辑器进⾏开发,这些编辑器需要安装插件才能提供PyCharm上的那些功能。
代码管理
项⽬开发过程中为防⽌代码丢失以及代码异常需要回退等需要对代码进⾏版本管理,当前⽐较主流的是使⽤Git进⾏版本管理。不熟悉的同学可以在这个⽹站上进⾏学习和练习。
项⽬组织结构
Django使⽤命令创建项⽬的时候已经提供了基本的项⽬组织结构,在开发过程中每个⼈也有各⾃的组织结构风格。当前⽐较流⾏且简单的办法是使⽤cookiecutter-django创建⼀个项⽬。
cookiecutter 是⼀个通过项⽬模板创建项⽬的命令⾏⼯具。⽽cookiecutter-django是github上有着近7千star的Django项⽬模板,可以快速⽣成⽐django-admin startproject命令⽣成的默认⽬录更优秀的⽬录布局。其优点如下:
1. 使⽤100%的测试覆盖率渲染Django项⽬
前端使⽤Twitter Bootstrap v4 开发模板
通过django-environ进⾏环境变量设置
优化开发和⽣产设置
通过django-allauth注册
⾃定义⽤户模型
可以基于Grunt和livereload构建
可以多平台部署(主要是国外平台)
使⽤unittest或py.test运⾏测试
cookiecutter-django可以通过pip命令进⾏安装,安装命令如下:
1. 安装cookiecutter
$ pip install cookiecutter
2. 运⾏ cookiecutter,⽣成Django项⽬
运⾏过程中,会询问项⽬名称、数据库配置等相关的项⽬配置信息,安装需要进⾏选择即可。
代码规范
简单来说,代码要遵循简洁、可读、松耦合、DRY等原则。⽐如
模型应该封装⼀个“对象”的各个⽅⾯,遵循 Martin Fowler 的 设计模式。
编写视图应该和编写 Python 函数⼀样简单。开发⼈员不应该在函数执⾏时实例化⼀个类。
模板系统看作⼀个⼯具,⽤于控制表现⽅式和表⽰⽅式相关的逻辑。模板系统不应该⽀持超出这个基本⽬标的功能。
通过模板继承将通⽤的页⾯部分,如页眉、页脚、导航栏等存储在⼀个地⽅,从⽽减少重复的代码。
另外,也可参考。
调试
django admin 自定义页面
为⽅便代码进⾏调试和问题分析,⼀个好的IDE就可以节约不少时间,然后就是好的代码规范和详细的⽇志,除此之外再推荐⼀个调试⼯具django-debug-toolbar。
django-debug-toolbar是Django开发中必备利器,可以帮助开发者快速了解项⽬的整体信息以及每个页⾯包括sql信息,http相关信息。访问Django的时候在页⾯右侧有各项配置⾯板,点击即可查看各种调试信息。
如果使⽤cookiecutter-django的话,已经集成在项⽬中了,其安装过程可参考。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。