引子

接触Python两天以后,偶然看见Django,试着了解了一下

Django 介绍

Django ( /ˈdʒæŋɡoʊ/ jang-goh )是个用Python写成的,免费而且开放原始码的Web应用程式框架。他是个Web框架-就是一堆零件的组成,可以帮助你轻松快速的开发网站。

这么说吧,当你盖一个网站的时候,你总是需要一些很类似的零件:使用者登入(注册、登入、登出),网站后台,表单,档案上传等等。

幸运的世界上有很多人很久以前就帮你注意到这件事,Web 开发者盖一个新的网站的时候总是面对着一样的问题,所以他们合作开发了框架使你可以直接拥有你会用到的零件(Django 就是其中之一)。

各种框架的存在就是拯救你免于重造轮子,当你新建一个网站的时候可以减少重工。

当某个人向你的服务器请求的时候发生了什么?

当服务器收到某个请求,这个请求会通过Django,Django则负责判断这个请求是什么。Django会先收到网址然后来判断应该要给出什么回应。这部分是由Django的urlresolver来处理(网址其实就是所谓的URL - Uniform Resource Locator,所以这就是为什么这里取名为urlresolver)。它不聪明-他有一堆正则去判断这个URL符合哪一个。Django则查看范本,如果URL符合某一个,Django就送出这个请求相对应的函数们(在这里称为view)

想像一个带着信的邮差。她在街上游走,确认每家的地址把信送给他们,如果地址对了,她就把信放进去,这就是urlresolver 在做的事情。

在view函数中会做一些有趣的事情:我们会去资料库中找某些资料。万一使用者要求要更改某些资料呢?例如某封请求「拜托把我的工作叙述改一下吧」的信- view就会检查你是不是允许他可以做这件事,然后你会在更新了他的工作叙述以后回传给他一个「完成啰!」的讯息。之后view就会产生一个回应,Django就会将回应送到使用者的浏览器上。

当然了,以上的叙述已经简化了很多,但你也不需要知道所有技术上的细节。有一个简单的概念即可。

所以不纠结在太多细节叙述上,我们打算就简单的开始用Django 做点事,就可以从中学习到更多了。

Django 安装

Linux安装

前提软件

  • CentOS 7 或其他版本Linux
  • Python3 或其他版本的Python 【建议使用最新的】
  • Django
  • Nginx
  • PostSql

虚拟环境

在我们安装Django 之前,我们会让妳安装一个超有用的工具,这可以让你电脑中的coding 环境保持干净。也可以跳过这个步骤,但是我们高度建议你不要- 用最好的安装方式起手可以节省你未来碰到许多麻烦的时间!

所以我们来创建一个虚拟环境(virtual environment)吧(也拼做virtualenv)。这会将你的Python/Django独立为一个专案形态,表示你在一个网站专案所做的任何改变都不会影响到你同时在进行的其他网站专案,超干净的对吧!

你所需要做的事就是找到一个目录去创建这个virtualenv;举例而言,你的家目录( /home),在Windows环境下会是C:\Users\Name\(Name会是你目前登入的使用者名称)。

在这个教程中我们会在你的家目录下使用一个新目录djangogirls:

1
2
mkdir djangogirls
cd djangogirls

我们会将会创建一个虚拟环境叫做myvenv。这个指令基本的格式如下:
1
python -m venv myvenv
Windows

创建一个新的virtualenv,你需要打开终端机(我们已经在前面一些章节中告诉过你了-记得吗?),并且执行C:\Python\python -m venv venv。这会看起来像这样

1
C:\Users\Name\djangogirls> C:\Python34\python -m venv myvenv

C:\Python34\python是你之前安装Python的路径,而myvenv则是你的virtualenv的名称。你可以取自己喜欢的名称,不过必须要是小写并且没有其他空白。保持名称简短是好主意-因为你将会常常提起它!
Linux and OS X

在Linux与Mac系统创建一个virtualenv就是很简单的执行一下python3 -m venv myvenv。看起来像这样:

1
~/djangogirls$ python3 -m venv myvenv

myvenv则你的virtualenv名称。你可以取自己喜欢的名称,不过必须要是小写并且没有其他空白。保持名称简短是好主意-因为你将会常常提起它!

小提示:在Ubuntu 14.04下初始化虚拟环境目前会给你以下的错误讯息:

1
Error: Command '['/home/eddie/Slask/tmp/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

将指令改为virtualenv可以避免掉这个问题

1
2
~/djangogirls$ sudo apt-get install python-virtualenv
~/djangogirls$ virtualenv myvenv
在虚拟环境下工作

以上的指令会创建一个叫做myvenv的目录(或是你自己决定的任何名称),里面就是我们的虚拟环境。我们现在想要做的就是把这个虚拟环境执行起来:

在Windows 上

1
C:\Users\Name\djangogirls> myvenv\Scripts\activate

或者 在OS X 与Linux 上:

1
~/djangogirls$ source myvenv/bin/activate

记得,如果你取了自己喜欢的名称,就把指令中的myvenv代换掉!

小提示:有时候你系统中或许不支援source指令,在这个状况下你可以使用以下方式:

1
~/djangogirls$ . myvenv/bin/activate

当你看到你的终端机的命令提示字元看起来像是下面这样的时候,你就知道你现在是在virtualenv中:

1
(myvenv) C:\Users\Name\djangogirls>

或这样:

1
(myvenv) ~/djangogirls$

(myvenv) 总是会出现!

当你在虚拟环境下工作时,python会自动切换到目前所使用的版本,所以你就可以用python而不需要再输入python3。

好了,我们已经有了所有相关的套件了,我们终于可以安装Django 了!

安装Django

现在你应该已经启动了你的virtualenv,你可以用pip来安装Django。在终端机底下,执行pip install django==1.6.6(注意噢,我们是使用双等号:==)。

1
2
3
4
5
(myvenv) ~$ pip install django==1.6.6
Downloading/unpacking django==1.6.6
Installing collected packages: django
Successfully installed django
Cleaning up...

如果当你在Ubuntu 12.04下呼叫pip时出现错误讯息,请执行
1
python -m pip install -U --force-reinstall pip

去修复这个pip在virtualenv下的安装问题。

这就是全部了!你现在(终于)准备好去创建一个Django 应用程式!

但在这之前,你需要一个好的软体让你可以好好写程式…