Django实践笔记
本文以Python的Web框架Django为例,整理下做从零开始到一个成型的网站所涉及到内容,目的不是教你如何一步一步搭建项目,而是让你对Django的良好实践有个大概的了解。虽然很久没用Django,但还是想把以前整理的笔记分享给初学者,供参考。
Django资源
Django英文文档
Django中文文档
awesome-django
Tango with Django
Django Reddit
Build a Django Blog
《django by examples》
环境
开发环境是项目开始前就必须要准备好的事,这里的开发环境包括了下面的几个要素:
操作系统环境主流的操作系统环境分别有Linux,OS X,Windows,这其中不同的操作系统的差异也不少,尤其是Windows系和*nix系。
开发环境开发环境指的则是开发工具的组合,例如nginx+gunicorn+virtualenv。
版本环境这里代表了开发工具的版本环境,例如Python 2.x和3.x,Django 1.4和1.9。
要保证开发的正确性,很重要的一点就是要维持环境的一致性,尤其是在多人协作的时候,不同的环境有可能导致运行正确性的不一致。
可以得出,一个好的环境需要三个要素:
隔离性
一致性
可配置性
下面是针对环境问题的几个解决方案:
虚拟机
虚拟机使得电脑可以实现模拟出完全隔离环境的操作系统,可以做到在一个系统中直接运行多个虚拟的操作系统,流行的虚拟环境有VMWare,Virtual Box等等。
Vagrant
Vagrant是一个用来创建和部署虚拟操作环境的工具,本质上它使用了虚拟机作为虚拟化的实现,但它比传统虚拟机有更灵活的配置项,使得开发环境的配置更简单。
Docker
Docker是一个容器引擎,可以轻松地创建和配置一个应用的隔离系统环境,而且可以发布到任意机器上,保持环境的一致性,相比于虚拟机,它具有轻量级和启动快的优势。
Virtualenv
Virtualenv可以用来创建一个相对隔离的Python运行环境。
Pyenv
Pyenv是用来管理Python版本的一个工具。
编码风格
PEP8
PEE8是Python官方建议的编码风格,里面包含了一系列的编码规范。
Flake8
Flake8是检查Python代码健壮性的一个工具,它包括了PyFlake,pep8等,并提供了更清晰的接口。
项目结构
当用django-admin startproject [projectname] .时,加上virtualenv目录后,会得到如下的目录结构:
[projectname]/
├── [projectname]/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
└── venv
相关文章