2020-12-15

1、简述vue和django的⼯作流程,django中间件的作⽤以及请求顺序
工作流程:
vue中axios发送http,经过uwsgi服务器转化为wsgi,再发给django,然后django把wsgi通过uwsgi服务器转化为http传给vue
django中间件的作用:
拦截处理
中间件请求顺序:
request进来之后,中间件从上到下一个个执行,最后一个执行完之后执行url和view(model:django可以通过orm对Mysql进行操作),之后再从中间件从下
到上一个个执行,从response出去到uwsgi服务器……
2、聊聊你对三次握⼿和四次挥⼿的理解
三次握手:
1、第一次客户端向服务端发送连接请求
2、第二次服务端向客户端发送同意连接请求
3、第三次客户端向服务端发送收到
四次挥手:
1、第一次客户端发送断开请求
2、第二次服务端收到断开请求
3、第三次服务端发送我已断开
4、第四次客户端断开连接
3、http报⽂是什么样⼦的,每部分如何来区分,每部分的作⽤是什么
http报文分为三部分:请求行,请求头,请求体
请求行:请求方法、路由(url)、协议版本     第一行都是请求行
请求头:放一些属性				 空行的上面除第一行都是请求头
请求体:放需要传递的数据      空行下面是请求体   
get请求没有请求体
4、http请求常⻅的请求⽅式有哪些?他们都是做什么⽤的?
HTTP/1.1协议中共定义了⼋种⽅法,来表明Request-URL指定的资源不同的操作⽅式
HTTP1.0定义了三种请求⽅法: GET, POST 和 HEAD⽅法。
HTTP1.1新增了五种请求⽅法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT ⽅法
GET      请求指定的页面信息,并返回实体主体
HEAD	 类似于get请求,只不过烦恼会的响应中没有具体内容,用于获取报头
POST	 向指定资源提交数据进行处理请求。数据包含在请求体中,post请求会导致新的资源的建立和已有的资源的修改	
PUT		 从客户端向服务器传输的数据取代指定的文档的内容
DELETE	 请求服务器删除指定的页面
CONNECT  HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS	 允许客户端查看服务器的性能
TRACE	 回显服务器收到的请求,主要用户测试或诊断
5、⼗个HTTP请求状态码
1xx 	信息 接收请求,继续处理
2xx 	成功 操作成功的收到,理解和接受
3xx 	重定向 为了完成请求,必须采取进⼀步措施
4xx 	客户端错误 请求的语法有错误或不能完全被接收
5xx 	服务器错误 服务器不能完成有效的请求
400     服务器不理解请求的语法。
403     服务器拒绝请求。
404     服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码。
302     表示临时性重定向。
301     指永久性的移动
6、中间件的调⽤⽅式,中间件是如何使⽤的,中间件的5⼤⽅法
from django.http import HttpResponse


class TestMiddleware(object):
'''中间件类'''
	def __init__(self):
    '''服务器重启之后,接收第一个请求时调用(只会调用一次)'''
   	 	print('----init----')

# 中间件函数。(用到哪个函数写哪个,不需要全写)
	def process_request(self, request):
    '''产生request对象之后,url匹配之前调用'''
    	print('----process_request----')
    # return HttpResponse('process_request')  # 默认放行,不拦截请求。

   	 def process_view(self, request, view_func, *view_args, **view_kwargs):
        '''url匹配之后,视图函数调用之前调用'''
        	print('----process_view----')
        # view_func: url匹配到的视图函数。
        	return HttpResponse('process_view')  # return HttpResponse对象,表示拦截,直接执行process_response函数。
 
	  def process_response(self, request, response):
	        '''视图函数调用之后,response返回浏览器之前'''
	       print('----process_response----')
	       return response  # 一般会返回响应。
       
   	 def process_exception(self, request, exception):
        '''视图函数发生异常时调用'''
        	print('----process_exception1----')
        	print(exception)
7、什么时候选择django来作为⾃⼰的开发框架
⽬的:了解Django框架的作⽤和特点
作⽤:简便、快速的开发数据库驱动的⽹站
Django的优势:
1、快速开发
2、MVT MVC
3、功能⻬全
Django学习版本: 1.11.11
思考:⽤django还是flask
开发数据驱动web⽹站(复杂业务逻辑)
数据分析后的结果展示界⾯, flask
快速成型应⽤上线, 就⽤django
8、来说说MVC和MVT吧
⽬的: 了解什么是MVC, MTV
思考: 为什么要⽤设计模式
	分⼯、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,
实现向后兼容。
	MVC:
	M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进⾏增、删、
	改、查操作。
	V全拼为View,⽤于封装结果,⽣成⻚⾯展示的html内容。
	C全拼为Controller,⽤于接收请求,处理业务逻辑,与Model和View交互,
	返回结果。
	MVT:
	M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进⾏数据处理。
	V全拼为View,与MVC中的C功能相同,接收请求,进⾏业务处理,返回应答。
	T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值