一、Django 工作流程
在开始具体的代码之旅前,先来宏观地看下Django是如何处理Http Resquest的,如下图:
假设你已经在浏览器输入了 http://127.0.0.1:8000/polls/,接下来浏览器会把请求交给Django处理。根据上图,我们知道Django需要根据url来决定交给谁来处理请求,那么Django是如何完成这项工作呢?很简单,Django要求程序员提供urls.py文件,并且在该类文件中指定请求链接与处理函数之间的一一对应关系。
在Django中的urls.py添加以下语句,即可指定请求链接与处理函数之间的一一对应关系。
urlpatterns = patterns(
'',
url(r'^polls/$', views.index),
)
这样当请求链接为http://127.0.0.1:8000/polls/时,就会用views.py中的函数index()来处理请求。现在Django知道由index来处理请求了,那么index需要做哪些工作呢?
它需要加载返回内容的模板,这里比如说是index.html。
def index(request):
return render(request,'index.html')
在模板方面,模板文件就是返回页面的一个骨架,我们可以在模板中指定需要的静态文件,也可以在模板中使用一些参数和简单的逻辑语句,这样就可以将其变为用户最终看到的丰满的页面了。
要使用静态文件,比如说css、javascript等,只需要用{% load staticfiles %}来声明一下,然后直接引用即可。
在数据库方面,Django给我们封装了数据库的读写操作,我们不需要用SQL语句去查询、更新数据库等,我们要做的是用python的方式定义数据库结构(在model.py里面定义数据库),然后用python的方式去读写内容。至于连接数据库、关闭数据库这些工作交给Django去替你完成吧。
至此,整个框架的简单介绍结束。
二、
在你写好一个完整的django后,它的工作流程应该是这样的:
1.用户在客户端浏览器输入URL地址,通过get/post请求方式,向服务端发起请求。
2.django服务端接收到客户端请求,通过urls.py中地址与处理函数之间的一一对应,找到对应的视图函数。
3.开始执行对应视图函数中的逻辑,通过与models交互,进行数据库的CRUD,django已经封装好了数据库操作方法,不需要额外的sql语句在进行数据库操作。
4.与templates交互,将参数返回到前端页面,并通过templates进行html页面渲染。
这是我学习django框架后对它的工作流程的简单了解,如果有不对的地方,欢迎指正。