谈谈你对HTTP协议的认识。html
什么是协议?
协议,是指通讯的双方,在通讯流程或内容格式上,共同遵照的标准。
什么是http协议?
http协议,是互联网中最多见的网络通讯标准。
http协议的特色
①通讯流程:断开式(无状态)
断开式:http协议每次响应完成后,会断开与客户端的链接
无状态:因为服务器断开了以前的链接,就没法知晓链接间的关系
②内容格式:消息头和消息体
列举Http请求中常见的请求方式前端
HTTP请求的方法: HTTP/1.1协议中共定义了八种方法(有时也叫“动做”),来代表Request-URL指定的资源不一样的操做方式 1、OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法,也能够利用向web服务器发送‘*’的请求来测试服务器的功能性 2、HEAD 向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法能够再没必要传输整个响应内容的状况下,就能够获取包含在响应小消息头中的元信息。 3、GET 向特定的资源发出请求。它本质就是发送一个请求来取得服务器上的某一资源。资源经过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。 4、POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会致使新的资源的创建和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form 5、PUT 向指定资源位置上传其最新内容 6、DELETE 请求服务器删除Request-URL所标识的资源 7、TRACE 回显服务器收到的请求,主要用于测试或诊断 8、CONNECT HTTP/1.1协议中预留给可以将链接改成管道方式的代理服务器。 注意: 1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。 2)HTTP服务器至少应该实现GET和HEAD/POST方法,其余方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。
get请求和post请求的区别mysql
区别:
get请求无消息体,只能携带少许数据
post请求有消息体,能够携带大量数据
携带数据的方式:
get请求将数据放在url地址中
post请求将数据放在消息体中
GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
简述MVC模式和MVT模式nginx
MVC
Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式链接在一块儿,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求。
MTV
Django的MTV模式本质上和MVC是同样的,也是为了各组件间保持松耦合关系,只是定义上有些许不一样,Django的MTV分别是值:
M 表明模型(Model): 负责业务对象和数据库的关系映射(ORM)。
T 表明模板 (Template):负责如何把页面展现给用户(html)。
V 表明视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
除了以上三层以外,还须要一个URL分发器,它的做用是将一个个URL的页面请求分发给不一样的View处理,View再调用相应的Model和Template
简述Django请求生命周期web
简述什么是FBV和CBVsql
FBV(function base views) 就是在视图里使用函数处理请求。 CBV(class base views) 就是在视图里使用类处理请求。 Python是一个面向对象的编程语言,若是只用函数来开发,有不少面向对象的优势就错失了(继承、封装、多态)。因此Django在后来加入了Class-Based-View。可让咱们用类写View。这样作的优势主要下面两种: 提升了代码的复用性,可使用面向对象的技术,好比Mixin(多继承) 能够用不一样的函数针对不一样的HTTP方法处理,而不是经过不少if判断,提升代码可读性
谈一谈你对ORM的理解数据库
ORM是“对象-关系-映射”的简称。
MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不须要依赖于特定的数据库,经过简单的配置就能够轻松更换数据库,这极大的减轻了开发人员的工做量,不须要面对因数据库变动而致使的无效劳动
rest_framework 认证组件的流程django
什么是中间件并简述其做用编程
django中怎么写原生SQL跨域
F和Q的做用
values和value_list区别
如何使用django orm批量建立数据
Django中的请求生命周期
http访问流程
命令migrate 和makemigrations的差异
视图函数中,接收的请求对象经常使用方法和属性有哪些
经常使用视图响应的方式是什么?
HTTP响应常见状态码分类
路由匹配原则是什么?
缓存系统类型有哪些
解决跨域的经常使用方式是什么?
信号的做用是什么?
Django的Model的继承有几种形式,分别是什么
Django中查询queryset时什么状况下用Q
Django中想验证表单提交是否格式正确须要用到Form中的哪一个函数
orm如何取消级联
Django中如何读取和保存session,整个session的运行机制是什么
简述Django对http请求的执行流程
Django中当用户登陆到A服务器进入登录状态,下次被nginx代理到B服务器会出现什么影响
跨域请求Django是如何处理的
查询集的两大特性?什么是惰性执行
查询集返回的列表过滤器有哪些
如何获取django urlpatterns里面注册的全部url?
django路由系统中include是干吗用的?
django2.0中的path与django1.xx里面的url有什么区别?
urlpatterns中的name与namespace有什么做用?你是如何使用的?
如何根据urlpatterns中的name反向生成url,这样反向生成url的方式有几种?
如何给一个字段设置一个主键?
blank=True与null=True有什么区别?
如何设置一个带有枚举值的字典?
DateTimeField类型中的auto_now与auto_now_add有什么区别
values()与values_list()有什么区别?
selected_related与prefetch_related有什么区别?
当删除一个外键的时候,如何把与其关联的对应关系删除
class Meta中的元信息字段有哪些
多对多关联的表,如何插入数据?如何删除数据?如何更新数据?
django的M2M关系,如何手动生成第三张表?
如何使用原生mysql?
在Django中,服务端给客户端响应信息有几种方式?分别是什么?
在视图函数中,经常使用的验证装饰器有哪些?
如何给一个视图函数加上缓存?
web框架的本质是什么?
什么是MVC、什么是MTV?
建立Django工程、Django app、以及运行的命令
Django App的目录结构
简述一下Django声明周期
Django 获取用户前端请求数据的几种方式
描述下 自定义simple_tag
什么是Cookie、如何获取、设置Cookie
什么是session,与cookie的对比、设置、获取、清空session
什么是CSRF,及防范方式
django 中间件生命周期
get请求和post请求的区别
图书管理系统的表结构是怎么设计的?
图书管理系统路由系统你用到了name了吗? 为何要使用呢?
图书管理系统的模板你是怎么用的? 重复的代码怎么解决?
MVC和MTV分别是什么?
WSGI / uwsgi/ uWSGI区分
如何使用django加密
解释blank和null
QueryDict和dict区别