Django for Webapp

刚刚开始接触Django时让我想到了一部电影《被解救的姜戈》,一看名字Django Unchained,还真的是一样的啊。

Django有很多版本,我自己学习并使用在项目里面的是1.7.11,所以我接下来的要讲的东西是基于 Django 1.7 上的。重要的事情说3遍,看文档,看文档,看文档首先需要明白的是Django是个什么东西,对吧?说白了,它就是一个web框架, 它只是一个被人做好的一个工具,跟那些bootstrap什么之类的差不多咯。

OK,Let’s get our hands dirty。

在最开始先说明自己是用的Linux系统,已经安装好了Python 2.7,Django 1.7

先介绍一个神奇的东西–virtualenv,它的作用是可以给你一个独立的开发环境。简单说一下,比如你用Django 1.7版本,然后你又想用Django 1.8版本试一下手,这个时候就是virtualenv的用武之地,它可以让你在电脑上建N多个开发环境,它们都互不干扰。安装也是非常简单

1
$ [sudo] pip install virtualenv

使用起来也是灰常简单,最先开始你得先给你的环境起一个非常有逼格的名字,记住是环境的名字。环境造好以后就是启动环境,接着就是造项目了,项目的名字可以和环境的名字一样,因为这样就可以让你搞不明白是什么意思,装逼一下啊。事实是无论你项目名字是什么,接下来都会把它修改为src。因为src文件名称在你脑海里面就有那么一种意思,对,就是那个作用。

1
2
3
4
5
6
7
$ virtualenv YourProjectName

$ cd YourProjectName

$ source bin/activate

$ django-admin.py startproject YourProjectName

完成上面几个步骤以后有几点你需要注意的,启动环境以后你会看到$符号前面包含你环境名字的双括号,另外关闭环境就是deactivate,是不是非常easy。最后你看到的目录是 bin/ include/ lib/ src/
还有几点优化可以做,比如说可以添加一个start.sh文件,然后你就每次直接 . ./start。

1
2
3
4
#!/bin/bash

source bin/activate
cd src

在以后的开发中会经常用到以下的命令行

1
2
3
4
5
$ pip freeze 查看当前环境里面都安装了些什么东东

$ python manage.py startapp NewAppName 安装新的App

$ python manage.py runserver 12344

现在可以放下手中的代码,一起来想想这个问题。当一个开发环境搭好,可以开始做项目了,需要注意什么,从什么地方开始呢?
当你用Django新创建好一个新项目的时候,它就自己带好了一个admin的模块。里面有4个python文件,init.py settings.py urls.py wsgi.py,一个一个来分析一下。

init.py

任何时候只要新建了一个app,就一定会带有这个文件。它的作用是相当于class中的def init(self):函数,用来初始化模块。并且把所在目录当作一个package处理,还有from-import 语句导入子包时需要用到它。 如果没有用到, 他们可以是空文件。就比如package.module下的所有模块from package.module import *

settings.py

它是整个Django的核心文件,任何重要的配置都需要在这里面进行修改。但是记得不搞乱搞它哦

urls.py

在Django中,每一个request都通过urls.py指向一个view。这种松散的耦合有着非常大的灵活性,但是需要注意的是设置路径

wsgi.py

wsgi(Python Web Server Gateway Interface)服务器网关接口,是Python语言定义的web服务器和web服务程序或者框架之间的一种简单而通用的接口。说得简单一点,就是服务器配置的文件,你可以在这个demo里面用到它