【django】django面试题总结

article/2024/12/29 9:40:17

一、django中间件的使用

Django在中间件中预置了六个方法,这六个方法的区别在于不同的阶段执行,对输入或输出进行干预,方法如下:

1.初始化:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件

def __init__(): pass

2.处理请求前:在每个请求上调用,返回None或HttpResponse对象。

def process_request(request): pass

3.处理视图前:在每个请求上调用,返回None或HttpResponse对象。

def process_view(request,view_func,view_args,view_kwargs): pass

4.处理模板响应前:在每个请求上调用,返回实现了render方法的响应对象。

def process_template_response(request,response): pass

5.处理响应后:所有响应返回浏览器之前被调用,在每个请求上调用,返回HttpResponse对象。

def process_response(request,response): pass

6.异常处理:当视图抛出异常时调用,在每个请求上调用,返回一个HttpResponse对象。

def process_exception(request,exception): pass

二、简述Django请求生命周期

在这里插入图片描述

一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数,如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户; 视图函数调用模型类去数据库查找数据,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

1.wsgi ,请求封装后交给web框架(Flask,Django)
2.中间件,对请求进行校验或在请求对象中添加其他相关数据,例如:csrf,request.session
3.路由匹配 根据浏览器发送的不同url去匹配不同的视图函数
4.视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm,templates
5.中间件,对响应的数据进行处理
6.wsgi,将响应的内容发送给浏览器

三、对cookies与session的了解?他们能单独用吗?

Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但是禁用Cookie就不能得到Session。因为Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于SessionID,也就得不到Session。

四、Django中哪里用到了线程?哪里用到了协程?哪里用到了进程?

1.Django中耗时的任务用一个进程或者线程来执行,比如发邮件,使用celery.

2.部署django项目是时候,配置文件中设置了进程和协程的相关配置。

五、谈一下你对uWSGI和nginx的理解?

1.uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。

要注意WSGI/uwsgi/uWSGI这三个概念的区分。

WSGI是一种通信协议。

为什么有了uWSGI为什么还需要nginx?
因为nginx具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。
nginx 是一个开源的高性能的HTTP服务器和反向代理:

1.作为web服务器,它处理静态文件和索引文件效果非常高

2.它的设计非常注重效率,最大支持5万个并发连接,但只占用很少的内存空间

3.稳定性高,配置简洁。

4.强大的反向代理和负载均衡功能,平衡集群中各个服务器的负载压力应用

六、用的restframework完成api发送时间时区

class getCurrenttime(APIView): def get(self,request): local_time = time.localtime() time_zone =settings.TIME_ZONE temp = {'localtime':local_time,'timezone':time_zone} return Response(temp)

七、Django、Flask、Tornado的对比

1、 Django走的大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的服务器,给开发者提高了超高的开发效率。 重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择上花费大量时间。
自带ORM和模板引擎,支持jinja等非官方模板引擎。

自带ORM使Django和关系型数据库耦合度高,如果要使用非关系型数据库,需要使用第三方库

自带数据库管理app

成熟,稳定,开发效率高,相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发。python web框架的先驱,第三方库丰富

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

适用于做小网站以及web服务的API,开发大型网站无压力,但架构需要自己设计

与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django

3、 Tornado走的是少而精的方向,性能优越,它最出名的异步非阻塞的设计方式

Tornado的两大核心模块:

iostraem:对非阻塞的socket进行简单的封装

ioloop: 对I/O 多路复用的封装,它实现一个单例


http://chatgpt.dhexx.cn/article/Ko9jp5ce.shtml

相关文章

python—Django面试题汇总

django面试题 1. Django架构:MVT: Django遵循MVC设计,并有一个专有的名词:MVT 1.M全拼为Model,与MVC的M功能相同,负责数据处理,内嵌了ORM框架。 2.V全拼为View,与MVC中的C功能相同,接收HttpRe…

超详细的Django面试题

Hello,我是 Alex 007,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了。 框架层 01.什么是Django框架?(初级) Django是一个开放源代码的Web应用框架&am…

django面试题总结

列举HTTP中常见的请求方式 HTTP请求的方法: HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式 注意: 1)方法名称是区分大小写的,当某个请求所…

Django 面试题

过完年后,就是春招了,是找工作的好时机,找工作或换工作的同学需要好好准备一下面试了,最近我精选了 10 个关于 Django 的面试题,如果要看更多面试题目,请在公众号后台回复「面试」获取。祝你新的一年&#…

Django常见面试题总结(一)

一、ORM是什么?优势? ORM:中文翻译为对象关系映射。 模型类名对应数据库表名 类属性对象数据库表字典 类属性中的字段对应数据库中的约束条件 模型类的多个实例对应于实例 优势: orm的技术特点,提高了开发效率&#xf…

Django面试题

目录 1 列举Http请求中常见的请求方式 2 谈谈你对HTTP协议的认识 3 简述MVC模式和MVT模式 4 简述Django请求生命周期 5 简述什么是FBV和CBV 6 谈一谈你对ORM的理解 7 rest_framework 认证组件的流程 8 什么是中间件并简述其作用 9 django 中间件生命周期 10 django中…

2020年最新Django经典面试问题与答案汇总(上)-大江狗整理

周末抽空整理了下Django经典面试问题及答案,希望对小伙伴们学习和工作有所帮助。如果小编我是负责招聘Python Web或Django开发人员的面试官,我也会考虑问如下问题。从下面可以大致了解一个面试者对Django技术的了解程度。由于篇幅所限,本文将…

用HTML5制作的3D相册

HTML5 非常强大,尤其是和CSS3结合,有时候能达到非同凡响的网页动画效果。今天要分享的这款HTML5应用就是一款很酷的3D立体图片相册应用,它可以用鼠标多拽从多个角度浏览相册图片,点击图片,就可以放大图片,…

HTML5制作信息登记表

# 制作信息登记表#样式需求分析: 一、 通过最外层的大盒子对页面进行整体控制,设置宽高、背景图片及相对定位。 二、 通过标记对表单进行整体控制,对其设置宽高、边距、边框样式及绝对定位。 三、 通过 标记控制标题的文本样式,对其设置…

HTML5制作二级菜单(主菜单的子菜单)

HTML5制作二级菜单&#xff08;主菜单的子菜单&#xff09; 一、HTML文件代码二、 CSS文件代码三、效果图 一、HTML文件代码 <!--submenu.html--> <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><link r…

制作HTML5海报

一、HTML5海报有什么卵用&#xff1f; HTML5海报作用跟一般的海报差不多&#xff0c;但是拥有更生动的灵活的页面和便捷快速的传播途径&#xff08;网络&#xff09;。不仅可以在微信公众号中推广&#xff0c;也可以在票圈&#xff0c;空间&#xff0c;群上推广。做得好的海报&…

用html5和css制作信息登记表

<!doctype html> <html><head><meta charset"utf-8"><title>信息登记表</title><!-- <link rel"stylesheet" href"style07.css" type"text/css"> --><style type"text/css&q…

html5制作购物车页面,利用html来制作一个简单美观的购物车界面

首先来展示一下购物车界面: (学习视频分享:html视频教程) 这个页面只是实现了其布局视图,没有使用js或者jquery相关语言,在博主看来是比较利于我们将其加入到自己的程序中的以下是相关代码: index.html 商品名称单价数量操作旁氏洗发露991删除旁氏洗发露991<

html5制作圆形

代码如下 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>Document</title> <style type"text/css"> .addBg { width: 100px; height: 100px; background-color…

html页面转盘如何实现,html5制作转盘的详解及实例

今天给大家带来的案列是html5转盘实例,可以直接拿来做抽奖程序,有需要的朋友可以拿去使用,下面是案列代码。html5制作转盘游戏 h1{width: 100%; height: 3rem; line-height: 3rem; font-size: 1.8rem; color:#c60; text-align: center; font-weight: bolder; } KinerLotter—…

用html做网页作品,HTML5实例:用HTML5制作的网页的15个优秀案例

在这里分享给大家精心挑选的15个HTML5网站模板&#xff0c;这些模板涉及商业、投资、简历、画廊、艺术、慈善、房地产&#xff0c;以及食品等等方面。 1. Zeni – Responsive HTML5 Portfolio Template Demo Download 2. Torn – HTML5 Template 5 Skins Demo Download 3. Fold…

用HTML5制作一个简易计算器

用H5制作一个简易计算器 最近刚学JavaScript&#xff0c;之后紧接着做了一个简易的计算器&#xff0c;能够实现数字的加减乘除运算。 首先&#xff0c;先用HTML5搭建好计算器大体框架。我这里用了两个表格&#xff0c;一个充当显示器&#xff0c;另一个表格就做成计算器按键部…

如何用html做一个贪吃蛇,如何用HTML5制作贪吃蛇游戏

如何用HTML5制作贪吃蛇游戏 发布时间:2020-07-09 15:09:59 来源:亿速云 阅读:122 作者:Leah 如何用HTML5制作贪吃蛇游戏?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 本文介绍了H5 c…

用HTML5制作精美战机游戏

每天要被大学老师催H5作业&#x1f44f;&#x1f3fb;&#x1f44f;&#x1f3fb;&#x1f44f;&#x1f3fb; 不如看看本文&#xff0c;代码齐全&#xff0c;直接用来做参考案例&#x1f44c;&#x1f3fb; 干货满满不看后悔&#x1f44d;&#x1f44d;&#x1f44d; 代码…

用HTML5制作课程表

无论是上班族还是学生党&#xff0c;都需要一份类似课程表的表格来提醒我们的日程。有了它就可以不必担心自己忘记该干什么事情&#xff0c;到点了该干什么事情。它可以说是我们日常生活中经常接触的事物了&#xff0c;制作一份课程表也很简单&#xff0c;可以用纸写&#xff0…