Django部分面试题目

web 部分
Python面试重点(web篇)
第一部分 必答题
注意:除第四题4分以外,其他题均每题3分。
1.写出常用的bootstrap的样式。

h1

2.什么是响应式布局?
就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。

3.请通过jQuery发送ajax请求。

$.ajax({
type:"GET",
url:"",
dataType:"json",
success:function(data){
},
error:function(jqXHR){
}
});
4.JavaScript与this相关的面试题(4分)

name = '老男孩';

info = {
name:'alex',
age:123,
func:function(){
console.log(this.name);
}
}

info.func()
name = '老男孩';

info = {
name:'alex',
age:123,
func:function(){
console.log(this.name);
function f1(){
console.log(this.name);
}
f1()
}
}

info.func()
name = '老男孩';

info = {
name:'alex',
age:123,
func:function(){
console.log(this.name);
(function(){
console.log(this.name);
})()
}
}

info.func()
name = '老男孩';

info = {
name:'alex',
age:123,
func:function(){
console.log(this.name);
var xxx = this;
(function(){
console.log(xxx.name);
})()
}
}

info.func()
alex
老男孩
alex
xxx
5.什么是跨域?如何解决?
修改对应的api实现函数views.py,允许其他域通过ajax请求数据。

6.简述你对Http协议的理解?
http是超文本传输协议,是一个应用层协议,由请求和相应构成,是一个标准的客户端服务器模型;信息是明文传输;http的连接很简单,是无状态的;端口80

7.简述你对Https协议的理解?
https则是具有安全性的ssl加密传输协议
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
端口443

8.列举常见的http请求头及作用?
User-agent:向服务器发送浏览器的版本、系统、应用程序的信息。
Cookie:告诉服务器关于 Session 的信息,存储让服务器辨识用户身份的信息
Accept:向服务器申明客户端(浏览器)可以接受的媒体类型(MIME)的资源

9.列举常见的http请求方法及作用?
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断

10.列举常见的http响应状态码。
1xx:指示信息–表示请求已接收,继续处理 2xx:成功–表示请求已被成功接收、理解、接受 3xx:重定向–要完成请求必须进行更进一步的操作 4xx:客户端错误–请求有语法错误或请求无法实现 5xx:服务器端错误–服务器未能实现合法的请求 常见状态代码、状态描述、说明: 200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的 URL 500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

11.http中connections:keep-alive的请求头的作用?
当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。

12.django请求生命周期?
当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中.
url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配, 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了.
视图函数根据客户端的请求查询相应的数据.返回给Django,然后Django把客户端想要的数据做为一个字符串返回给客户端.
客户端浏览器接收到返回的数据,经过渲染后显示给用户.

13.什么是wsgi?
WSGI是Python在处理HTTP请求时,规定的一种处理方式。如一个HTTP Request过来了,那么就有一个相应的处理函数来进行处理和返回结果。WSGI就是规定这个处理函数的参数长啥样的,它的返回结果是长啥样的?至于该处理函数的名子和处理逻辑是啥样的,那无所谓。简单而言,WSGI就是规定了处理函数的输入和输出格式。

14.什么是MVC ?什么是MTV?
MVC(Model View Controller 模型-视图-控制器)
Model: 代表数据存取层,
View 代表的是系统中选择显示什么和怎么显示的部分,
Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。
MTV(Model Templates View 模型-模板-视图)
Models:数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效,是一个抽象层,用来构建和操作你的web应用中的数据,模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。
模板(templates):即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。模板层提供了设计友好的语法来展示信息给用户。使用模板方法可以动态地生成HTML。模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。
视图(views):业务逻辑层,该层包含存取模型及调取恰当模板的相关逻辑。用于封装负责处理用户请求及返回响应的逻辑。视图可以看作是前端与数据库的中间人,他会将前端想要的数据从数据库中读出来给前端。他也会将用户要想保存的数据写到数据库。

15.django中间件作用以及应用场景?
process_request : 请求进来时,权限认证
process_view : 路由匹配之后,能够得到视图函数
process_exception : 异常时执行
process_template_responseprocess : 模板渲染时执行
process_response : 请求有响应时执行

16.django中FBV和CBV有什么区别?
FBV和CBV本质是一样的,基于函数的视图叫做FBV,基于类的视图叫做CBV 在python中使用CBV的优点:
提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性

17.django orm中如何批量创建数据?
objs=[models.Book(title="图书{}".format(i+15)) for i in range(100)]
models.Book.objects.bulk_create(objs)

18.django 如何执行原生SQL?
使用execute执行自定义的SQL,直接执行SQL语句(类似于pymysql的用法)
使用extra方法 :queryset.extra(select={"key": "原生的SQL语句"})

19.django的orm如何查询id不等于5的数据。

20.cookie和session的区别?
cookie: cookie是保存在浏览器端的键值对,可以用来做用户认证
session: 将用户的会话信息保存在服务端,key值是随机产生的字符串,value值是session的内容 依赖于cookie将每个用户的随机字符串保存到用户浏览器上
Django中session默认保存在数据库中:django_session表
flask,session默认将加密的数据写在用户的cookie中

21.django的orm中on_delete的作用?
级联删除 在2.0版本后,表与表之间关联必须要写,不然会报错

22.描述crm有哪些功能?
管理客户, 管理用户 ,
23.crm中什么是公户?什么是私户?为什么要做这个区分?
系统里大家都能能看到的
个人客户
防止抢客户

24.请列举出CRM系统中的表。

25.对数据库的数据做展示时,不同字段类型有不同的展示方法,分别是什么?

26.请详细说说你们公司销售是如何使用CRM的。

27.CRM中有哪些技术点?

28.为什么不用现成的crm而是自己去开发?

29.请简述实现权限控制的流程。

30.列举权限有多少张表?表中都有那些字段?

31.为什么要把权限信息放到session中?权限信息放到session有什么优缺点?

32.权限控制到按钮级别是如何实现的?

33.如何实现把权限粒度控制到数据行?

第二部分 补充题
1.详细描述是jsonp实现机制?
2.django的orm如何通过数据自动化生成models类?
3.django中如何设置缓存?
4.django中信号的作用?
5.django中如何设置读写分离

猜你喜欢

转载自www.cnblogs.com/sjf981012-/p/12394645.html