可能出现的面试题

1、什么是orm框架
orm:对象关系映射
类 --- 表
对象 --- 一条记录
当有了对应关系之后,不需要再编写sql语句,直接操作,类,对象


2、sql vs ormsql
查询速度快,开发效率低
orm开发效率高,查询速度较低


3、概念理解
  -db first 根据数据库的表生成类
  -code first 根据类生成数据库的表


4、orm是怎么实现的
  根据对象和类通过字符串格式化转化成sql语句
  DDD中:unit of work

5.类私有化字段的访问

  __leiming__.__field__派生类不能访问父类私有字段通过self,等无法调到,除非强制使用——__下划线+类名去调用。

 

 6.DButils

  

 DBUtils是Python的一个用于实现数据库连接池的模块。 

模式:
- 每个线程创建一个连接,关闭(默认不关闭),线程终止时,才关闭连接。
- 创建共享连接池

  7.同源策略

    同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

 同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和百度同源的脚本才会被执行。如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。


8.JSONP

jsonp是json用来跨域的一个东西。原理是通过script标签的跨域特性来绕过同源策略。将JSON数据填充进回调函数,这就是JSONP的JSON+Padding的含义。 一般情况下,我们希望这个script标签能够动态的调用,而不是像上面因为固定在html里面所以没等页面显示就执行了,很不灵活。我们可以通过javascript动态的创建script标签,这样我们就可以灵活调用远程服务了。
9.restframework-CBV的好处

   CBV(class base views) 就是在视图里使用类处理请求。

   Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View。可以让我们用类写View。这样做的优点主要下面两种:

  1. 提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
  2. 可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性

 10.解释一下dispatch.as_view()里头那as_view()是咋回事

   Django的url是将一个请求分配给可调用的函数的,而不是一个class。针对这个问题,class-based view提供了一个as_view()静态方法(也就是类方法),调用这个方法,会创建一个类的实例,然后通过实例调用dispatch()方法,dispatch()方法会根据request的method的不同调用相应的(http_method_names)中的方法来处理request(如get(),post()等)。到这里,这些方法和function-based view差不多了,要接收request,得到一个response返回。如果方法没有定义,会抛出HttpResponseNotAllowed异常。

   11.http协议支持的请求方式

 

 

get请求:    查看数据
post请求:   添加数据
delete请求:  删除数据
put请求:   更新指定数据
patch请求:  更新全部数据 等

 12.请您谈谈http协议

http协议本质  是指从客户端到服务器端的请求消息。包括:消息首行中,对资源的请求方法、资源的标识符及使用的协议

 
posted @ 2018-05-08 16:05  saintdingtheGreat  阅读(115)  评论(0编辑  收藏  举报