Python面试重点(web篇)

Python面试重点(web篇)

注意:只有必答题部分计算分值,补充题不计算分值。

第一部分 必答题

注意:除第四题4分以外,其他题均每题3分。

  1. 写出常用的bootstrap的样式。

    标题元素:h1~h6
    小型标题:small | .small
    段落突出:.lead
    高亮显示:mark - 黄色背景
    关键显示:code - 和此块一致
    代码块段:pre - 和这个一样的背景
    删除线、下划线、加粗、斜体
    del、u、strong、em
    文字对齐:
    左对齐 - .text-left
    右对齐 - .text-right
    中间对齐 - .text-center
    两端对齐 - .text-justify
    大小写转换:
    小写 - .text-lowercase
    大写 - .text-uppercase
    驼峰 - .text-capitalize
    缩略语:attr
    引用:blockquote
    引用源标明:footer
    引用内容右对齐:blockquote-reverse
    标题下划线:page-header
    ...........
    
  2. 什么是响应式布局?

    同一页面在不同大小和比例上看起来都应该是舒适的;
    同一页面在不同分辨率上看起来都应该是合理的;
    同一页面在不同操作方式(如鼠标和触屏)下,体验应该是统一的;
    同一页面在不同类型的设备(手机、平板、电脑)上,交互方式应该是符合习惯的。
    
  3. 请通过jQuery发送ajax请求。

    $.ajax({
    type:请求方式,
    url: 请求地址,
    data:请求参数,
    dataType: 服务器返回值类型,
    success:回调函数
    });
    
  4. JavaScript与this相关的面试题(4分)

    
    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() 
    
    
  5. 什么是跨域?如何解决?

    跨域,指的是从一个域名去请求另外一个域名的资源,浏览器不能执行其他域名网站的脚本,是由浏览器的同源策略造成的,是浏览器施加的安全限制,域名,端口有任何一个的不同,就被当作是跨域
    1、 通过jsonp跨域
    2、 document.domain + iframe跨域
    3、 location.hash + iframe
    4、 window.name + iframe跨域
    5、 postMessage跨域
    6、 跨域资源共享(CORS)
    7、 nginx代理跨域
    8、 nodejs中间件代理跨域
    9、 WebSocket协议跨域
    
  6. 简述你对Http协议的理解?

    Http协议则是一种应用层协议,在进行tcp传输前需要进行三次握手进行客户端和服务端的验证,
    http请求由三部分组成,分别是:请求行、消息报头、请求正文
    
  7. 简述你对Https协议的理解?

    默认端口号是 443
    客户端请求 https 连接, 服务器收到请求后会把证书信息(包含公钥和签名) 返回给客户端
    客户端会校验这个证书签名的有效性从而获取到公钥
    客户端随机生成会话密钥, 然后利用证书里面的公钥将会话密钥加密, 连同加密后的内容传送给服务端
    服务器利用私钥解密出会话密钥, 然后解密出内容
    服务端利用会话密钥通信
    
  8. 列举常见的http请求头及作用?

    Accept: 浏览器可以接受的 MIME 类型
    Accept-Encoding:浏览器支持的编码类型
    Accept-Language: 浏览器支持的语言
    Content-Length : 请求消息的正文长度
    Content-Type : 客户端接受服务器返回的文件类型
    User-Agent : 请求的用户信息, 浏览器类型
    Host : 给出接受请求的服务器主机名和端口号
    
  9. 列举常见的http请求方法及作用?

    1、OPTIONS
    返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
    2、HEAD
    向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
    3、GET
    向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url
    4、POST
    向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
    5、PUT
    向指定资源位置上传其最新内容
    6、DELETE
    请求服务器删除Request-URL所标识的资源
    7、TRACE
    回显服务器收到的请求,主要用于测试或诊断
    8、CONNECT
    HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    
  10. 列举常见的http响应状态码。

    200 OK  当您的操作将在响应正文中返回数据时,出现此结果。
    204 No Content 当您的操作成功,但不在响应正文中返回数据时,出现此结果。
    304 Not Modified(重定向)  当测试实体自上次检索以来是否被修改时,出现此结果。
    403 Forbidden   客户端错误
    401 Unauthorized 客户端错误
    413 Payload Too Large(客户端错误) 当请求长度过长时,出现此结果。
    400 BadRequest(客户端错误) 当参数无效时,出现此结果。
    404 Not Found(客户端错误) 当资源不存在时,出现此结果。
    405 Method Not Allowed(客户端错误)由于方法和资源组合不正确而出现此错误。 例如,您不能对一个实体集合使用 DELETE 或 PATCH。
    412 Precondition Failed  客户端错误
    501 Not Implemented(服务器错误) 当未实施某个请求的操作时,出现此结果。
    503 Service Unavailable(服务器错误) 当 Web API 服务不可用时,出现此结果。
    
  11. http中connections:keep-alive的请求头的作用?

    HTTP中keep-alive头部的作用是为保持TCP连接,这样可以复用TCP连接不需要为每个HTTP请求都建立一个单独的TCP连接。这样既可以节省操作系统资源,也能够保持HTTP请求的高效性
    
  12. django请求生命周期?

     wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架(Flask、Django)
    中间件,帮助我们对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session
    路由匹配
    视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染
    中间件,对响应的数据进行处理。
    wsgi,将响应的内容发送给浏览器
    
  13. 什么是wsgi?

    Web服务器网关接口,WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来;让Web服务器知道如何调用Python应用程序,并且把用户的请求告诉应用程序;让Python应用程序知道用户的具体请求是什么,以及如何返回结果给Web服务器
    
  14. 什么是MVC ?什么是MTV?

    MVC就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起:
    A.模型负责业务对象与数据库的映射(ORM)
    B.视图负责与用户的交互(页面)
    C.控制器接受用户的输入调用模型和视图完成用户的请求
    MTV模式:
    M 代表模型(Model):负责业务对象和数据库的关系映射(ORM)。
    T 代表模板 (Template):负责如何把页面展示给用户(html)。
    V 代表视图(View):负责业务逻辑,并在适当时候调用Model和Template
    除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template
    
  15. django中间件作用以及应用场景?

  16. django中FBV和CBV有什么区别?

  17. django orm中如何批量创建数据?

  18. django 如何执行原生SQL?

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

  20. cookie和session的区别?

  21. django的orm中on_delete的作用?

  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中如何设置读写分离

你可能感兴趣的:(Python,python,web)