1、中间件

中间件一般做认证或批量请求处理,django中的中间件,其实是一个类,在请求和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法,
如请求过来 执行process_request, view,process_response方法

 

 

2、Django、Tornado、Flask各自的优势

Django:Django无socket,django的目的是简便,快速开发,并遵循MVC设计,多个组件可以很方便的以“插件”形式服务于整个框架,
django有许多功能强大的第三方插件。django具有很强的可扩展性。
Tornado:它是非阻塞式服务器,而且速度相当快,得力于其 非阻塞的方式和对epoll的运用,Future对象,缺点:没有session,需要自定制
Flask:是一个微型的web框架,配合SQLALchemy来使用,jinja2模板, werkzeug接口

3、 django版本,Python版本,linux版本

django:1.11
Python:3.6
linux:6.9

4、django的template的注释是什么样子的

单行:{#注释#}
多行注释:{%comment%}

5、django怎么弄并发的

nginx+uwsig为django提供高并发,nginx的并发能力超过,单台并发能力过万,在纯静态的web服务中更是突出其优越的地方,由于底层使用epoll异步IO模型进行处理。

 

6、tornodo的ioloop知道是什么吗?

事件循环

7、select_related和prefetch_related,Q和F

select_related:一对多使用,查询主动做连表
prefetch_related:多对多或者一对多的时候使用,不做连表,做多次查询
Q:用于构造复杂查询条件
F:更新时用于获取原来的值,专门取对象中某一列进行操作

 

 

8、什么是ORM?

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

 

 

9、CORS跨域资源共享

首先会发送"预检"opption",请求,如果"预检"成功,则发送真实数据。

10、Django的Form主要具有以下功能?

生成HTMl标签,验证用户数据 is_vaild,HTML Form提交保留上次提交数据,初始化页面显示内容

 

 

11、CBV和FBV

CBV在指定的类上面加上装饰器或在此方法上面添加装饰器 @method_decorator,并继承view

12、cookie及session

cookie:是保留在客户端上面的一组键值对,cookie不是很安全,别人可以分析存放在本地的cookie
session:是保存在服务器上面的一组键值对,依赖与cookie,安全指数比cookie高

13、django的请求生命周期

请求来了先到uwsgi,把请求做一部分分装给django框架,然后经过所有的中间件,路由,视图,视图处理再返回给中间件,中间件在返回给uwsgi,在返回给用户。

14、uwsgi和wsgi

wsgi:是web服务器网关接口,是pyhton应用程序或框架和web服务器之间的一种接口,其广泛使用的是django框架。
uwsgi:是一个web服务器,它实现了wsgi协议,Nginx中HttpUwsgiModule的作用是与Uwsgi服务器进行交换

 

 

15、解释下django - debug -toolbar的使用

使用django开发站点时,可以使用django-debug-toolbar来进行调试,在settings.py中添加 'debug—toolbar.midleware.Debug ToolbarMiddleware'到项目的MIDDLEWARE_CLASSES内。