• 技术文章 >Python框架 >Django

    django面试会问什么

    silencementsilencement2019-07-27 09:56:10原创2682

    以下是Django面试中常见的一些问题

    对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判断,提高代码可读性。

    专题推荐:django
    上一篇:django序列化的实质是什么 下一篇:django注释有什么用

    相关文章推荐

    • pycharm社区版如何安装Django• django生命周期是什么意思• django序列化的实质是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网