python面试题——框架和其他(132题)

1、django、flask、tornado框架的比较?

Django:简单的说Django是一个大而全的Web框架,内置了很多组件,ORM、admin、Form、 ModelForm、中间件、信号和缓存等。

    基于wsgi协议部署的,使用wsgiref模块实现此协议;

Flask:微型的小而精的Web框架,可扩展性强,内置的组件很少,需要引入第三方组件实现功能业务,如果开发简单的项目,使用Flask比较快速和方便。    如果开发大型项目,需要引入大量的第三方组件,这时Flask会越 来越像Django框架。    基于wsgi协议部署,使用werkzeug模块实现此协议,模板系统由 Jinja2提供。
Tornado:是一个轻量级的Web框架,可扩展性强,用于快速开发简单程序,用于强大的异步非阻塞和内置WebSocket功能。

2、什么是wsgi?

中文名:web服务器网关接口 实现该协议的模块:
    -wsgiref
    -werkzurg <br>    -uwsgi
PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,是一种协议,实现该协议的模块有uwsgi、wsgiref和werkzeug,这些模块本质上就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架 (Flask、Django)

3、django请求的生命周期?

请求来了先到uwsgi,把请求做一部分分装给django框架,然后经过所有的中间件,路由,视图,视图处理再返回给中间件,中间件在返回给uwsgi,在返回给用户。
wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架 (Flask、Django)
中间件,帮助我们对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session
路由匹配,根据浏览器发送的不同url去匹配不同的视图函数
视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染
中间件,对响应的数据进行处理。
wsgi,将响应的内容发送给浏览器(用户)。

4、列举django的内置组件?

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

6、简述什么是FBV和CBV?

FBV(function base views) 就是在视图里使用函数处理请求。
CBV(classbase views) 就是在视图里使用类处理请求。
Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View。可以让我们用类写View。这样做的优点主要下面两种:
    (1)提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
    (2)可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性

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

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

9、列举django orm 中所有的方法(QuerySet对象的所有方法)

10、only和defer的区别?

11、select_related和prefetch_related的区别?

12、filter和exclude的区别?

13、列举django orm中三种能写sql语句的方法。

14、django orm 中如何设置读写分离?

15、F和Q的作用?

16、values和values_list的区别?

17、如何使用django orm批量创建数据?

18、django的Form和ModeForm的作用?

19、django的Form组件中,如果字段中包含choices参数,请使用两种方式实现数据源实时更新。

20、django的Model中的ForeignKey字段中的on_delete参数有什么作用?

21、django中csrf的实现机制?

22、django如何实现websocket?

23、基于django使用ajax发送post请求时,都可以使用哪种方法携带csrf token?

24、django中如何实现orm表中添加数据时创建一条日志记录。

25、django缓存如何设置?

26、django的缓存能使用redis吗?如果可以的话,如何配置?

27、django路由系统中name的作用?

28、django的模板中filter和simple_tag的区别?

29、django-debug-toolbar的作用?

30、django中如何实现单元测试?

31、解释orm中 db first 和 code first的含义?

32、django中如何根据数据库表生成model中的类?

33、使用orm和原生sql的优缺点?

34、简述MVC和MTV

35、django的contenttype组件的作用?

36、谈谈你对restfull 规范的认识?

37、接口的幂等性是什么意思?

38、什么是RPC?

39、Http和Https的区别?

1、首先Https是Http的安全版,即HTTP下加入SSL层就是Https;
2、默认端口号不同,Http是80端口,Https是443端口;
3、Http是超文本传输协议,信息是明文传输,可以自定义证书,在服务端创建一对证书,在客户 端必须携带证书;
4、采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 该证书只有用于对应的server 的时候,客户才信任此主机.

40、为什么要使用django rest framework框架?

41、django rest framework框架中都有那些组件?

42、django rest framework框架中的视图都可以继承哪些类?

43、简述 django rest framework框架的认证流程。

44、django rest framework如何实现的用户访问频率控制?

45、Flask框架的优势?

46、Flask框架依赖组件?

47、Flask蓝图的作用?

48、列举使用过的Flask第三方组件?

49、简述Flask上下文管理流程?

50、Flask中的g的作用?

51、Flask中上下文管理主要涉及到了那些相关的类?并描述类主要作用?

52、为什么要Flask把Local对象中的的值stack 维护成一个列表?

53、Flask中多app应用是怎么完成?

54、在Flask中实现WebSocket需要什么组件?

55、wtforms组件的作用?

56、Flask框架默认session处理机制?

57、解释Flask框架中的Local对象和threading.local对象的区别?

58、Flask中 blinker 是什么?

59、SQLAlchemy中的 session和scoped_session 的区别?

60、SQLAlchemy如何执行原生SQL?

61、ORM的实现原理?

62、DBUtils模块的作用?

63、以下SQLAlchemy的字段是否正确?如果不正确请更正:

fromdatetime importdatetime
?fromsqlalchemy.ext.declarative
importdeclarative_base
?fromsqlalchemy importColumn, Integer, String, DateTime
??
Base = declarative_base()??
classUserInfo(Base):?
    __tablename__ =‘userinfo‘?
    id=Column(Integer, primary_key=True, autoincrement=True)?
    name =Column(String(64), unique=True)?
    ctime =Column(DateTime, default=datetime.now())

  

64、SQLAchemy中如何为表设置引擎和字符编码?

65、SQLAchemy中如何设置联合唯一索引?

66、简述Tornado框架的特点。

67、简述Tornado框架中Future对象的作用?

68、Tornado框架中如何编写WebSocket程序?

69、Tornado中静态文件是如何处理的??如: <link href="{{static_url("commons.css")}}" rel="stylesheet" />

70、Tornado操作MySQL使用的模块?

71、Tornado操作redis使用的模块?

72、简述Tornado框架的适用场景?

73、git常见命令作用:

74、简述以下git中stash命令作用以及相关其他命令。

75、git 中 merge 和 rebase命令 的区别。

76、公司如何基于git做的协同开发?

77、如何基于git实现代码review?

78、git如何实现v1.0 、v2.0 等版本的管理?

79、什么是gitlab?

80、github和gitlab的区别?

81、如何为github上牛逼的开源项目贡献代码?

82、git中 .gitignore文件的作用?

83、什么是敏捷开发?

84、简述 jenkins 工具的作用?

85、公司如何实现代码发布?

86、简述 RabbitMQ、Kafka、ZeroMQ的区别?

87、RabbitMQ如何在消费者获取任务后未处理完前就挂掉时,保证数据不丢失?

88、RabbitMQ如何对消息做持久化?

89、RabbitMQ如何控制消息被消费的顺序?

90、以下RabbitMQ的exchange type分别代表什么意思?如:fanout、direct、topic。

91、简述 celery 是什么以及应用场景?

92、简述celery运行机制。

93、celery如何实现定时任务?

94、简述 celery多任务结构目录?

95、celery中装饰器 @app.task 和 @shared_task的区别?

96、简述 requests模块的作用及基本使用?

97、简述 beautifulsoup模块的作用及基本使用?

98、简述 seleninu模块的作用及基本使用?

99、scrapy框架中各组件的工作流程?

100、在scrapy框架中如何设置代理(两种方法)?

101、scrapy框架中如何实现大文件的下载?

102、scrapy中如何实现限速?

103、scrapy中如何实现暂定爬虫?

104、scrapy中如何进行自定制命令?

105、scrapy中如何实现的记录爬虫的深度?

106、scrapy中的pipelines工作原理?

107、scrapy的pipelines如何丢弃一个item对象?

108、简述scrapy中爬虫中间件和下载中间件的作用?

109、scrapy-redis组件的作用?

110、scrapy-redis组件中如何实现的任务的去重?

111、scrapy-redis的调度器如何实现任务的深度优先和广度优先?

112、简述 vitualenv 及应用场景?

113、简述 pipreqs 及应用场景?

114、在Python中使用过什么代码检查工具?

115、简述 saltstack、ansible、fabric、puppet工具的作用?

116、B Tree和B+ Tree的区别?

117、请列举常见排序并通过代码实现任意三种。

118、请列举常见查找并通过代码实现任意三种。

119、请列举你熟悉的设计模式?

120、有没有刷过leetcode?

121、列举熟悉的的Linux命令。

122、公司线上服务器是什么系统?

123、解释 PV、UV 的含义?

124、解释 QPS的含义?

125、uwsgi和wsgi的区别?

126、supervisor的作用?

127、什么是反向代理?

128、简述SSH的整个过程。

129、有问题都去那些找解决方案?

130、是否有关注什么技术类的公众号?

131、最近在研究什么新技术?

132、是否了解过领域驱动模型?

原文地址:https://www.cnblogs.com/xiugeng/p/9716134.html

时间: 2024-11-01 18:25:48

python面试题——框架和其他(132题)的相关文章

python基础面试题整理---从零开始 每天十题(01)

最近在弄flask的东西,好久没写博客的,感觉少了点什么,感觉被别人落下好多,可能渐渐的养成了写博客的习惯吧.也是自己想学的东西太多了(说白了就是基础太差了,只是know how,不能做到konw why). 不说那些毒鸡汤了,我们来说说我们今天的python基础面试题吧. 一,Q:python的优缺点有什么? A:优点: 1,基础语法简单易学,对于初学者来说,语法还是相对简单的,比较容易学习,网上的学习资料也很多.    2,面向对象,在python里继承和封装较多,而python的多态还是相

python公司面试题集锦 python面试题大全

问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x Child1.x = 2 print Parent.x, Child1.x, Child2.x Parent.x = 3 print Parent.x, Child1.x, Child2.x 答案 以上代码的

Python面试题整理-更新中

几个链接: 编程零基础应当如何开始学习 Python ? - 路人甲的回答 网易云课堂上有哪些值得推荐的 Python 教程? - 路人甲的回答 怎么用最短时间高效而踏实地学习 Python? - 路人甲的回答 如何学习Python爬虫[入门篇] - 学习编程 - 知乎专栏 Python常用库整理 - 学习编程 - 知乎专栏 学好Python的11个优秀资源 - 学习编程 - 知乎专栏 在开头依然推荐一个Python面试题整理比较好的网站:GitHub : 关于Python的面试题.同样推荐几道

python 面试题

前段时间面试碰到的一组python面试题,虽然很简单但是特别的基础. 1.Python 如何判断二维数组中是否包含整数? array = [[1, 3, 5.6, 7.2, 8, 9.9], [2.5, 4.7, 6.8, 7.3, 9, 10], [3.7, 6.7, 9.8, 9.9, 11, 12.1]] for i in array: for j in i: if str(j).isdigit(): # 判断是否是整数还可以通过isinstance(j, int) print("二维列表

面试题收集-java面试题及答案(基础题122道,代码题19道)

JAVA相关基础知识1.面向对象的特征有哪些方面?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派

17道Python面试题,分享给你以防不测!

今天给大家分享的是Python面试题系列的第一篇文章,后续我也会陆续整理Python相关的问题给大家,无论是求职者还是新人都可以通过面试题来考察自己的能力缺陷. 1.Python中pass语句的作用是什么? pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作. 2.Python是如何进行类型转换的? Python提供了将变量或值从一种类型转换成另一种类型的内置函数.比如int函数能够将符合数学格式数字型字符串转换成整数.否则,返回错误信息. 3.Python是如

python面试题总结与分析(一)

Q 1:Python 有哪些特点和优点? 作为一门编程入门语言,Python 主要有以下特点和优点: 可解释 具有动态特性 面向对象 简明简单 开源 具有强大的社区支持 当然,实际上 Python 的优点远不止如此,可以阅读该文档,详细了解: https://data-flair.training/blogs/python-tutorial/ Q 2:深拷贝和浅拷贝之间的区别是什么? 答:深拷贝就是将一个对象拷贝到另一个对象中,这意味着如果你对一个对象的拷贝做出改变时,不会影响原对象.在 Pyt

Python面试合集 史上最全面Python面试题和详解(10套) 完整版

本文件内含10个文档,文档格式为md,可以以文本的形式打开.内容如题,全面的Python面试题和详解,需要的朋友可下载试试! 包含:2019 Python最新面试题及答案16道题.110道Python面试题(上).最常见的 35 个 Python 面试题及答案(2018 版).整理的最全 python常见面试题(基本必考)等! 下载地址 https://pan.baidu.com/s/1XgpPig-KpR8ox0vWuTwVIw 如需提取码: [打开微信]->[扫描下方二维码]->[关注数据

Python之Web框架介绍

所有的语言Web框架本质其实就是起一个socket服务端,监听一个端口,然后运行起来 Web框架包含两部分,一部分是socket,另外一部分是业务的逻辑处理,根据请求的不同做不同的处理 Python的Web框架分成了两类, 即包含socket也包含业务逻辑处理的(tornado) 不包含socket(框架本身通过第三方模块实现socket)只包含业务逻辑处理(django,Flask) WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口.具