分享一波Django面试常问的基础知识

本文介绍了Django的基础知识,包括其特点、与其他框架的对比、WSGI概念、请求生命周期、FBV与CBV、中间件、路由系统、ORM方法等,并探讨了Django在面试中常见的问题,如session、缓存、REST框架等。
摘要由CSDN通过智能技术生成

 

对Django的认识?

  • 1.Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。

  • 2.Django内置的ORM跟框架内的其他模块耦合程度高。应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利;理论上可以切换掉其ORM模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。

  • 3.Django的卖点是超高的开发效率,其性能扩展有限;采用Django的项目,在流量达到一定规模后,都需要对其进行重构,才能满足性能的要求。

  • 4.Django适用的是中小型的网站,或者是作为大型网站快速实现产品雏形的工具。

  • 5.Django模板的设计哲学是彻底的将代码、样式分离; Django从根本上杜绝在模板中进行编码、处理数据的可能。

 

Django 、Flask、Tornado的对比

  • 1.Django走的是大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的服务器给开发者提高了超高的开发效率

  • 2.Flask是轻量级的框架,自由,灵活,可扩展性很强,核心基于Werkzeug WSGI工具和jinja2模板引擎

  • 3.Tornado走的是少而精的方向,性能优越。它最出名的是异步非阻塞的设计方式Tornado的两大核心模块: 1、iostraem:对非阻塞式的socket进行简单的封装 2、ioloop:对I/O多路复用的封装,它实现了一个单例

 

什么是wsgi,uwsgi,uWSGI?

  • WSGI:web服务器网关接口,是一套协议。用于接收用户请求并将请求进行初次封装,然后将请求交给web框架

实现wsgi协议的模块: 1.wsgiref,本质上就是编写一个socket服务端,用于接收用户请求(django) 2.werkzeug,本质上就是编写一个socket服务端,用于接收用户请求(flask)

  • uwsgi:与WSGI一样是一种通信协议,它是uWSGI服务器的独占协议,用于定义传输信息的类型

  • uWSGI:是一个web服务器,实现了WSGI协议,uWSGI协议,http协议,

 

django请求的生命周期?

  • 1.wsgi,请求封装后交给web框架 (Flask、Django)

  • 2.中间件,对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session -

  • 3.路由匹配 根据浏览器发送的不同url去匹配不同的视图函数

  • 4.视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染 -

  • 5.中间件,对响应的数据进行处理。

  • 6.wsgi,将响应的内容发送给浏览器。

简述什么是FBV和CBV?

FBV和CBV本质是一样的 基于函数的视图叫做FBV,基于类的视图叫做CBV 在python中使用CBV的优点:

  • 1.提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)

  • 2.可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性

 

如何给CBV的程序添加装饰器?

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 Django 面试中常见的问题及其回答: 1. 什么是 DjangoDjango 是一个基于 Python 的 Web 开发框架,它遵循 MVC 模式,提供了一套完整的 Web 开发流程,包括 URL 设计、模板渲染、表单处理等。 2. Django 中的视图函数是什么? Django 中的视图函数是处理 Web 请求并返回 Web 响应的 Python 函数。它们负责从数据库中检索数据,渲染模板并返回 HTTP 响应。 3. 什么是 Django 中的模型? Django 中的模型是与数据库交互的 Python 类。它们充当了业务逻辑和持久化数据之间的桥梁,允许我们以面向对象的方式操纵数据库中的数据。 4. 什么是 Django 中的中间件? Django 中的中间件是在请求到达视图函数之前或响应返回之后运行的 Python 类。它们可以用于处理请求和响应的内容,例如身份验证、缓存、日志记录等。 5. 什么是 Django 中的 URLconf? Django 中的 URLconf 是一组 URL 模式,将 URL 映射到视图函数。它允许我们将 URL 路径与视图函数进行解耦,使我们可以轻松地更改 URL 结构而不必更改应用程序的代码。 6. 什么是 Django 中的模板? Django 中的模板是包含动态内容的 HTML 文件。它们允许我们将 Python 变量插入到 HTML 中,以动态地生成页面内容。 7. 什么是 Django 中的表单? Django 中的表单是用于处理用户输入的 Python 类。它们允许我们验证用户输入并将其存储到数据库中。 8. 什么是 Django 中的 Admin 后台? Django 中的 Admin 后台是一个自动生成的管理界面,用于管理应用程序中的模型。它允许我们轻松地查看、添加、编辑和删除模型实例,而无需编写自己的管理界面。 9. 什么是 Django 中的信号? Django 中的信号是一种用于发送和接收消息的机制。它们允许应用程序中的不同部分进行通信,例如在保存模型实例时发送通知。 10. 什么是 Django 中的缓存? Django 中的缓存是一种用于存储临时数据的机制。它们允许我们避免过多地查询数据库,并提高应用程序的性能。Django 支持多种缓存后端,例如 Memcached、Redis 等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值