Django,Tornado和Flask是Python里比较著名的三个Web开发框架,本文我主要介绍Django里最重要的一些基本概念。
总览
下图是从用户输入网址到服务器返回结果的Django流程图。Django里几个重要的概念都涉及到了,接下来我就逐个说说。
URLconf
URLconf其实就是起地址定向(或叫配对)的作用,浏览器中输入的不同地址定向到不同的处理逻辑上。
例如,下面定义了网址根目录下的定向方法:
而下面的代码又定义了polls.urls
里的二级目录定向方法:
所以,像127.0.0.1:8000/polls/login/
就会由指定的视图函数views.login
来处理。
模型(Model)
一个模型对应着一个数据库中的表,所以也可以说模型就是数据。
例如,下面定义了一个Django模型:
它对应的数据表如下:
模板(Template)
模板可以理解为HTML模板。模板接收一些输入数据,然后最终产生返回给用户的HTML页面。
例如,下面是一个简单的登录模板,里面用到了Django的模板语言:
模板可以像OOP里的类一样,可重用。具体可参见“extends”说明。
视图(View)
真正处理浏览器请求的是视图。视图接收请求数据,调用其他模块产生结果数据,然后再把结果数据传给模板,由模板最终产生返回给用户的HTML页面。
例如,下面是一个简单的注册视图:
表单其实不算个重要组件,它只是为了使用方便才被创造出来的。例如我们上面视图里就用到了一个表单UserCreationForm
,这个表单帮助创建出简单的注册表单。下面是效果图:
References