django面试题

hechengQAQ / 2023-05-07 / 原文

1、什么是wsgi?uwsgi?uWSGI?

wsgi是一种通信规范,规定请求和响应的格式;uwsgi是一种通信协议,不过跟WSGI分属两种东西,该协议下速度比较快;uWSGI是web服务器,支持uwsgi、http两种协议,它的功能是把HTTP协议转化成语言支持的网络协议供python使用。

 

在Python Web开发中,uWSGI通常被用作应用程序的部署工具,使得Python Web应用程序的性能和稳定性都能得到很好的保障。WSGI只是一种规范,它并没有实现任何具体的功能。因此,为了使用WSGI,你需要选择一个符合WSGI规范的Web服务器和Python Web框架,比如常用的uWSGI、Gunicorn、Nginx等Web服务器,以及Django、Flask等Web框架。

2、django的请求生命周期?

客户端请求--->WSGI创建request对象--->请求中间件--->url匹配到视图--->业务逻辑,操作数据库---->返回响应给客户端---->拿到数据渲染

3、列举django的内置组件?

4、列举django中间件的5个方法?以及django中间件的应用场景?

 

5、简述什么是FBV和CBV?

FBV: 函数视图,CBV类试图,通常用类试图,提高代码复用性,利用对象方便操作

6、django的request对象是在什么时候创建的?

将请求的内容封装成request对象,源码如何查看:from django.core.handlers.wsgi import WSGIHandler,请求经过WSGI,封装成request对象

class WSGIHandler(base.BaseHandler):
-------request = self.request_class(environ)
请求走到WSGIHandler类的时候,执行cell方法,将environ封装成了request