Python学习笔记--9.Django框架快速入门之预备知识


前言

在前面的学习中,我们对python基础知识和面向对象编程进阶进行了充分的学习和了解。今天我们将接触到一个python开发中最常用到的框架之一–Django框架。

本章主要内容时,在学习了解Django框架之前,我们还需要了解到的预备知识。包括HTTP协议的认识以及MVC模式和MTV模式。


一、HTTP协议的认识

1.什么是HTTP协议

“超文本传输协议”,HTTP协议就是客户端和服务器之间数据传输的格式规范。

基于TCP/IP来讲:

1)HTTP是一个属于应用层的面向对象的协议。
2)HTTP协议工作雨客户端-服务端架构上。
TCP/IP四层协议
在这里插入图片描述
详细会在文末笔记补充中作解释。

基于请求-响应模式来讲:

浏览器作为HTTP客户端通过URL向HTTP服务器(WEB服务器)发送所有请求。
WEB服务器根据接收到的请求,向客户端发送响应信息。

2.为什么说HTTP协议是无状态协议?怎么解决呢?

HTTP协议自身不具备对通信状态进行保存这个功能。是一种不保存状态,即无状态(stateless)协议。

怎么解决?
cookie保存和session会话保存。
两者区别会在文末笔记补充中详细解答。

3.HTTP请求中常见的请求方式

HTTP1.0:GET,POST,HEAD方法

HTTP1.1(新增6种请求方法)::OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方
法。
在这里插入图片描述

我们只需要记住:
CRUD(create-post, retreieve-get, update-patch,delete-delete) 增删改查

二、MVC模式、MTV模式

MVC模式:
将web应用分为模型、控制器、视图三层,模型负责对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接收用户的输入调用模型和视图完成用户的请求。

在这里插入图片描述

MTV模式:
本质上和NVC模式相同。在python中基本都使用了MVC的变种MTV(Model Templates View 模型-模板-视图)。
理解)Django的MTV分别是:
M(Model)即模型:负责业务对象和数据库的关系映射(ORM)。
T(Template)即模板:负责如何把页面展示给用户(html)。
V(View)即视图:负责业务逻辑,并在适当时调用Model和Template。

除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处
理,View再调用相应的Model和Template,MTV的响应模式如下所示:
在这里插入图片描述

笔记补充:需要整理的面试内容

  1. TCP/IP四层协议是什么?
    答:自下而上分别是数据链路层、网络层、传输层和应用层。

  2. 列出常见的应用层协议?
    DNS协议:负责提供机器域名和IP地址的转换。
    HTTP协议:超文本传输协议,负责客户端和服务端之间的数据传的格式规范。
    FTP协议:文本传输协议,负责网络共享文件的传输协议。
    Telnet协议: 远程登录协议,它使我们能在本地完成远程任务。

  3. TCP三次握手,四次分手的过程?为什么要这么做?
    三次握手建立连接:
    (1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。
    (2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
    (3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。
    完成三次握手,客户端与服务器开始传送数据。

四次分手断开连接:
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

CP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

  1. cookie和session有什么区别?
    会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。
    Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

笔记补充:Windows网页:F12 进入网页开发者模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值