编程学习网 > 编程语言 > Python > 面试中常见的django框架问题分享
2022
08-04

面试中常见的django框架问题分享

过完八月,就是金九银十了!今年的金三银四虽然不如往年,但是金九银十仍然值得期待。因此,精选了一些面试中常见的django框架问题分享,希望能对大家有所帮助。

1什么是MVC模式?

把数据存取逻辑、业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller(MVC)模式。在这个模式中, Model 代表数据存取层,View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。

Django 紧紧地遵循这种 MVC 模式,可以称得上是一种 MVC 框架。以下是 Django 中 M、V 和 C 各自的含义:
  • M ,数据存取部分,由django数据库层处理,本章要讲述的内容。

  • V ,选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理。

  • C ,根据用户输入委派视图的部分,由 Django 框架根据  Django 里更关注的是模型(Model)、模板(Template)和视图(Views),Django 也被称为 MTV 框架 。在 MTV 开发模式中:

  • M 代表模型(Model),即数据存取层。 

  • T 代表模板(Template),即表现层。

  • V 代表视图(View),即业务逻辑层。 


2解释http协议?

(Hyper Text Transfer Protocol,HTTP)中文名为超文本传输协议,是一个简单的分布式、协作式和超媒体信息系统的应用层请求-响应协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准。HTTP基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

请求报文格式如下: 

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

应答报文格式如下:

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

八种请求方法如下:
GET:请求获取Request-URI所标识的资源。
POST:在Request-URI所标识的资源后附加新的数据。
HEAD:请求获取由Request-URI所标识的资源的响应消息报头。
PUT:请求服务器存储一个资源,并用Request-URI作为其标识。
DELETE:请求服务器删除Request-URI所标识的资源。
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断。
CONNECT:保留将来使用。
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。


3什么是ORM?

 ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间做一个映射
ORM优缺点:
优点:摆脱复杂的SQL操作,适应快速开发,让数据结果变得简单,数据库迁移成本更低
缺点:性能较差,不适用于大型应用,复杂的SQL操作还需要通过SQL语句实现


4常见HTTP状态码都有哪些or5xx等表示什么意思?

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599)

经常问的状态码:

  1. 100:这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已经完成,就忽略这个响应,而且服务器会在请求完成后向客户发送一个最终的结果

  2. 200:这个是最常见的http状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果

  3. 202:表示服务器已经接受了请求,但是还没有处理,而且这个请求最终会不会处理还不确定

  4. 204:服务器成功处理了请求,但没有返回任何实体内容 ,可能会返回新的头部元信息

  5. 301:客户端请求的网页已经永久移动到新的位置,当链接发生变化时,返回301代码告诉客户端链接的变化,客户端保存新的链接,并向新的链接发出请求,已返回请求结果。

  6. 302:服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

  7. 404:请求失败,客户端请求的资源没有找到或者是不存在

  8. 500:服务器遇到未知的错误,导致无法完成客户端当前的请求。

  9. 502:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

  10. 503:服务器由于临时的服务器过载或者是维护,无法解决当前的请求。


5什么是cookie和session?

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。最常见的就是我们做系统时用户注册登录时cookie会保留历史记录,直接免登录点确定就行。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。


6视图函数中,接收请求对象的常见属性方法有哪些?
  • path属性,获取请求页面的全路径,不包括域名。

  • method属性,获取请求中使用的HTTP方式的字符串表示。全大写表示。

  • GET属性,获取HTTP GET方式请求传参,的参数(字典类型)


7怎么优化MYSQL数据库?

常见的有,选取适合的字段属性,使用连接查询和联合查询,另外还可以使用事务,外键,索引等,索引优化中可以采用分块查找,二分查找,b+和b-树。条件允许的情况下,也可以改善硬件设备来调优。


8非关系型数据库和关系型数据库都有哪些or联系和区别?

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。

优点:

1、易于维护:都是使用表结构,格式一致;

2、使用方便:SQL语言通用,可用于复杂查询;

3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:

1、读写性能比较差,尤其是海量数据的高效率读写;

2、固定的表结构,灵活度稍欠;

3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个

很大的瓶颈。

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:

1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。

2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;

3、高扩展性;

4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

1、不提供sql支持,学习和使用成本较高;

2、无事务处理;

3、数据结构相对复杂,复杂查询方面稍欠。


9html和css与js的理解?

对于一个网页,HTML定义网页的结构,CSS描述网页的样子,JavaScript设置一个很经典的例子是说HTML就像 一个人的骨骼、器官,而CSS就是人的皮肤,有了这两样也就构成了一个植物人了,加上javascript这个植物人就可以对外界刺激做出反应,可以思 考、运动、可以给自己整容化妆(改变CSS)等等,成为一个活生生的人。

以上就是“面试中常见的django框架问题分享”的详细内容,想要了解更多django框架内容欢迎持续关注编程学习

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取