[Django]安装Django

1 安装Python

由于Django由Python写成,所以需要首先使用Python。由于Python 2.x和3.x的原因,所以Django对不同版本的Python的兼容性或者适用性存在偏差。

下面是Python和Django的对应关系:

Django 版本Python版本
1.72.7 and 3.2, 3.3, 3.4
1.82.7 and 3.2 (until the end of 2016), 3.3, 3.4, 3.5
1.92.7, 3.4, 3.5

对于每个版本的Python,只有最近的发行版本才能得到官方支持,在Python Download Page上可以获得Python的最新版本。Django对于Python的支持将会到Python安全维护的全周期内。比如Python 3.3 的安全支持在2017年9月终止,Django 1.8LTS(长期支持版)的安全检查会在2018年4月终止,因此Django 1.8也是最后一个支持Python 3.3的Django。

在Django 1.6之前,Python 3.x系列被公认为十分稳定的版本,在生产环境中其能够得到信任的。由于更新Python版本提供了更多的特性,所以应该使用更新的Python 2.x和3.x系列。第三方应用能够自由的选择他们的依赖项。

而对于windows操作系统,需要下载MSI installer for windows,完成之后按照窗口导引就能完成安装了。

在安装完成之后,需要检查Python是否存在在环境变量Path之中。首先打开命令行,通过python --version检查环境变量是否被正确的设定了,如果没有,需要保证python的python可执行文件和script文件夹被正确的包含在内。例如,python 2.7安装路径位于C:\python27\,那么C:\python27\和C:\python27\Script\都需要包含在环境变量里

2 安装Apache和mod_wsgi

由于django自带了一个轻量级的服务器,所以在仅需要测试的时候,是不必要安装Apache服务器的,但是在实际的应用环境(比如接受较大并发的访问的时候)之中的时候,安装Apache和mod_wsgi是十分必要的。

mod_wsgi主要分为两个模式:嵌入式和守护式。在嵌入式之中,mod_wsgi和mod_perl十分相似,其把Python嵌入到Apache之中,当服务器开启的时候,它将会从内存之中加载Python代码,这样使得Python代码存活在Apache服务器运行的全周期之内,这也使得其性能高于其他服务器部署方式。而对于守护式而言,mod_wsgi会创建一个独立的守护进程来处理访客的请求,这样也使得其安全性得到了提升。在需要重新部署代码的时候,不需要重启整个Apache服务器,这样使得代码部署和实际应用之间无缝衔接。具体怎么部署还是需要参考mod_wsgi的文档。

确保Apache服务器被正常开启,mod_wsgi服务得以激活,Django就会运行在任何一个版本的支持mod_wsgi的Apache服务器之上。

官方FAQ上介绍了如何配置mod_wsgi的方法,鉴于篇幅所限,不在这里介绍了。

当然Django也支持其他的部署方式,例如在nginx上的uWSGI运行Django也非常好。Django遵循着wsgi说明书(即PEP3333,Python的网络服务器网关接口),这样也使得其能够运行在一系列的服务器上。

3 安装数据库

如果你打算使用数据库来承载内容的话,你必须确保数据库服务正在运行,Django在官方上支持PostgreSQL,MySQL,ORACLE和SQLite。如果你开发的工程较为简单,那么SQLite是足够应付的了,但是由于SQLite还是和其他数据库具有很大的差异,所以在实际环境之中,数据库还是保持统一会比较好。

对于官方版本,需要确保与数据库的链接被正确安装了:

而对于官方并不支持的数据库,第三方应用也是可以使用的,比如:

  • SAP SQL Anywhere
  • IBM DB2
  • Microsoft SQL Server
  • Firebird
  • ODBC

这些数据库django版本和ORM特征差异较大,对于这些非官方的后台的具体功能以及任何支持查询,应直接使用第三方项目提供支持的渠道获得帮助。

Django的命令manage.py migrate可以自动创建数据库之中的表格,但是需要确保具有访问和修改数据库的权限,如果需要手动进行的话,也需要给予的SELECT, INSERT, UPDATE 和 DELETE权限。当选用Django的测试框架去测试查询Django的时候,需要确保Django有创建test数据库的权限。

4 移除老版本的Django

当升级Django的版本的时候,首先需要卸载老版本的Django的。

如果你具有easy_install或者pip的话,更新Django的时候会自动执行卸载的过程的。

如果是没有以上两种工具,那么就需要手工在site-packages中删除django库的,可以通过以下命令在Shell命令行来取得其地址:

1
$ python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"

5 安装Django代码

安装Django的方法与你所选择的Django有差异。

pip安装官方发行版:

  1. 安装pip。最简单的办法就是安装独立的pip安装器 ,如果你已经安装了pip,需要确保其还能跟得上时代的潮流
  2. virtualenvvirtualenvwrapper提供了一个隔离的Python环境,这样也使得不比在系统层面上安装那么多库文件,其也支持在没有管理员权限的情况下安装Django,这里就有如何在Python3上安装Django的方法。
  3. 当完成了环境的创建和激活之后,就可以使用pip install Django来在Shell命令行之中安装Django了

安装特殊发行版

这里检查一下你的系统是否有特殊发行版,通常特殊发行版能够自动安装依赖和更新路径,但是往往极少含有最新的Django

安装开发版本

安装开发版本就需要关注开发门径了,你需要注意即将到来的发行版。对于每个稳定版本,任何改变都会在文档中予以标识。

如果你想得到最新的Django代码以求最新的BUG修正和代码优化,需要执行以下几步:

  1. 确保Git安装完成,并且能够在Shell命令行中调用git help
  2. 检出Django的一个主要版本,例如使用这个命令:$ git clone git://github.com/django/django.git ,然后再本地目录里就会出现Django文件夹
  3. 确保Python能够正确的加载代码,最为稳妥的办法就是使用virtualenvvirtualenvwrapperpip
  4. 当安装并且激活virtualenv之后需要运行命令:pip install -e Django,这样也会使得django-admin被正确执行

当需要获取最新的Django的时候,运行命令git pull 即可,git会自动完成各种更新的。

windows环境下的BUG

  • 如果django-admin只显示帮助文本而不接受参数的话,这样很有可能是文件和Windows的关联出了问题,检查是否有多个script在环境变量之中,这往往是多个版本的Python安装所导致的
  • 在使用代理采用pip或者easy_install安装的时候,需要在命令行之中配置代理,例如:
    1
    2
    set http_proxy=http://username:password@proxyserver:proxyport
    set https_proxy=https://username:password@proxyserver:proxyport