Django 环境搭建与目录结构

使用 pip 组件进行安装

先安装 pip 组件:

Ubuntu(Debian)

1
sudo apt-get install python3-pip

Fedora

1
yum install python3-pip

Windows

使用 get-pip.py 进行安装。直接下载 get-pip.py ,然后在命令行下执行即可安装 pip 组件:

1
$ python3 get-pip.py

macOS

在 macOS 下,建议 Python 通过 Homebrew 进行安装。使用 Homebrew 安装后的 Python 自带 pip 组件。

如果 pip 版本过低,可以使用以下命令对 pip 进行升级(Windows 用户无需输入 sudo):

1
$ sudo pip3 install --upgrade pip

在 pip 安装好的情况下,输入以下命令安装指定版本的 Django。由于本课程使用的 Django 版本号为 1.8.13,则输入以下命令即可:

1
$ sudo pip3 install Django==1.8.13

使用源码包安装

另外,你也可以下载源码进行安装。在官方的源码包列表中进行下载,以 django-1.8.13.tar.gz 为例:

Windows

直接用解压软件解压,然后到命令行(例如在 D:\django-1.8.13\ 这个目录):

1
2
3
cd D:
cd django-1.8.13
python3 setup.py install

Linux 或 macOS

1
2
3
tar -xvf django-1.8.13.tar.gz
cd django-1.8.13
sudo python3 setup.py install

检查是否安装成功

当安装好 Django Web 框架后,我们在 Python 提供的交互式环境下即可检测 Django 的安装情况和版本信息:

1
2
3
4
5
6
7
shiyanlou:~/ $ python3
Python 3.4.3 (default, Sep 14 2016, 12:36:27)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'1.8.13'

显示正确的安装版本 1.8.13 说明 Django 安装成功。

使用 virtualenv 实现开发环境分离

开发会用 virtualenv 来管理多个开发环境。在服务器上有时我们不止一个项目,而且每个项目由于使用的框架包版本不同则会造成矛盾。例如:一个项目依赖于 Django 1.8,而另一项目较为久远,依赖于 Django 1.4,导致不兼容项目无法正常运行。此时我们使用 virtualenv 来解决这些问题。

virtualenv 可以创建一个拥有自己安装目录的环境,这个环境不与其他虚拟环境共享库,能够方便的管理 Python 版本和管理 Python 库。

依托于之前安装 Django 时的 pip 组件,我们可以很容易的安装 virtualenv:

1
$ sudo pip3 install virtualenv

安装成功我们,我们来创建 virtualenv 环境。例如我们创建一个名为 dj 的环境:

1
$ virtualenv dj

当需要读取环境时使用 source 命令即可:

1
source ./dj/bin/activate

测试在命令行中,发现我们的用户名签多了一个 (dj) ,这是 virtualenv 在提示我们在 dj 此开发环境中。

当我们需要退出该开发环境时,只需要键入

1
$ deactivate

一览 Django 全貌

在上一章节中,我们浏览了 Django 项目的项目结构。如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.
├── Hello
│ ├── admin.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── HelloWorld
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-34.pyc
│ │ └── settings.cpython-34.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py

那么这些文件具体都是什么作用呢?我们先不要关注它们的代码,这里将带大家了解一下它们的作用:

urls.py

链接入口,关联到对应的 views.py 中的一个函数(或者乘坐 generic 类),访问的链接就对应一个函数。

views.py

处理用户发出的请求,从 urls.py 中对应而来,通过渲染 templates 中的网页可以为用户显示页面内容,比如登录后的用户名,用户请求的数据,通过其输出到页面。

models.py

与数据库操作相关,存入或读取数据时使用。当不使用数据库的时候,也可以当做一般的类封装文件,存储各种类的定义。

forms.py

表单,用户在浏览器上输入提交,对数据的验证工作以及输入框的生成等工作,都依托于此。

admin.py

后台文件,可以用少量的代码就拥有一个强大的后台。

settings.py

Django 的设置、配置文件,比如 DEBUG 的开关,静态文件的位置等等。

除了这些,还有以上目录中未提及的:

templates目录

views.py 中的函数渲染 templates 中的 html 模板,得到动态内容的网页,可以用缓存来提高渲染速度。