Django动态网站基础

来源:互联网 发布:php 邀请码注册数据库 编辑:程序博客网 时间:2024/05/22 04:38

免责声明:本Django系列博文为《Django Web开发指南》一书的个人读书笔记,原作者为(美)JeffForcier、Paul Bissex、WesleyChun著,徐旭铭等译。文中涉及原书的引用纯属个人研究、学习之用,实际内容请参看原书正版。禁止一切商业范围的转载和使用!


Web开发的基本流程大致如下:

a.用户向Web服务器请求一个文档;

b.Web服务器随即获取或生成这个文档;

c.服务器把结果返回给用户的浏览器;

d.最后浏览器将这个文档渲染出来。


下面我们来实际分析一下具体细节有哪些。

一、通信:HTTP、URL、请求、响应​


HTTP(超文本传输协议)=请求+响应;

      请求的核心是URL;

      ​响应由正文(body)和响应包头(header)组成。

​  Django将请求和响应表示成相对简单的Python对象,用属性来表示其数据,以及用方法来进行更复杂的操作。

二、数据存储:SQL和关系数据库


Web的作用可以理解为传输数据或内容共享(这里的内容可以是任何东西——blog帖子,金融数据,电子书等)。

      静态内容:同样的URL请求返回的信息总是一样的。

      大部分动态特性是通过将数据保存在数据库里实现的​。

      SQL(结构化查询语言)是用来定义和查询数据库的语言,通常被进一步抽象为一个ORM(对象关系映射),它可以把数据库里的数据映射为面对对象语言里的代码对象。

       SQL数据按照表(table)的形式来组织,每张表则由行(row,例如,条目、对象)和列(column,属性、变量)组成,基本上和数据表格很相似。Django提供了一个强大的ORM机制,Python的类就代表了表,对象代表了其中的每一行,而对象的属性则代表了列。​

三、​表示:将模板渲染成HTML和其他格式

​       HTML,JavaScript,CSS……

四、​组合在一起

       上述三者之间靠什么工具来进行交流?

       每个Web框架或语言都有不同的方法。这里只讲Django自己的方式。​

​传统思想:分层(MVC)

      MVC:Model-View-Controller,模型-视图-控制器​

      模型:控制数据;

​      视图:定义显示的方法;

​      控制器:在两者之间斡旋,并且让用户可以请求和操作数据。

Django的办法:

      模型部分保持不变,​只负责把数据传入数据库。

​      Django的视图其实更接近MVC里传统意义上的控制器。它们是将模型层和表示层链接在一起的Python函数。

      Django​开发团队是这样解释的:

        我们理解的MVC里,视图的作用是描述将要显示给用户的数据。这不仅仅是数据看上去的外观(look),还包括如何表示数据(present)。视图描述的是你能看哪些数据,而不是怎么看到它。这里面的区别很微妙。

​        换一种说法,Django把表示层一分为二,视图方法定义了要显示模型里的什么数据,而模板则定义了最终信息的显示方法。而框架自己则担当了控制器的角色——它提供了提供了决定什么视图和什么模板一起响应给定请求的机制。

模型:应用程序的基本,是最底部的一层,是基础。​从整个Web应用的角度来说,模型可能是最容易领会却也是最难掌握的部分。

视图:视图组成了Django应用程序里的很多的逻辑。它们的定义实际上却很简单:它们是链接到一个或多个定义URL上的Python函数,这些函数都返回一个HTTP响应对象。​

模板:​当一个视图与要返回一个HTML文档时,它通常会制定一个模板,提供给它所要显示的信息,并在响应里使用模板渲染的结果。


0 0
原创粉丝点击