Python Web相关面试题(一)

python中Web开发相关面试题 和前俩篇一样,有些还是需要你自己整理话述 1.TCP的三次握手 第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认 第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Nu... 阅读详情

面试题

  1. Flask框架依赖那些组件?
  • Route(路由)
  • template(模板)
  • models(模型)
  • blieprint(蓝图)
  • Jianja2(模板引擎)
  1. Django的常用中间件
    • AuthenticationMiddleware 用户身份认证
    • SessionMiddleward 提供对会话的支持,允许你在应用程序中存储和访问会话数据
    • CSRFviewmiddleward:这个中间件提供CSRF保护。在请求和响应处理流程中验证CSRF令牌
    • MessageMiddleware这个中间件提供了像用户显示消息的功能,比如成功消息,错误消息
  2. 简述同源策略
    • 协议一样
    • 域名一样
    • 端口一样
    • 只要以上三种不同,则不同源
  3. 分别从前端后端数据库阐述web项目性能优化
    • 前端优化
      • 减少http请求
      • html和css放在页面商密,js放在页面下面,因为js加载要比html和css加载的慢,所以要优先加载html和css,以防页面展示不全性能差影响用户体验
    • 后端优化
      • 缓存存储读写次数高变化少的数据,比如网站的首页信息,商品信息等。应用程序读取数据时,一般先从缓存中读取,如果读取不到或者数据已失效,在访问磁盘数据库,并将数据再次写入缓存
      • 异步方式,如果有耗时操作,可以采用异步,比如celery
      • 代码优化,避免循环和判断次数太多,如果多个ifelse判断,优先判断最有可能的情况
    • 数据库优化:
      • 如果有条件,数据可以存放redis,读取速度块
      • 简历索引,外键等
  4. 简述django的ORM
    • 实现了数据模型与数据库的解耦,通过简单的配置就可以轻松更换数据库,而不需要修改代码只需要面面相对象编程,ORM操作本质上会根据对接的数据引擎,翻译成对应的sql语句,所有使用django开发的项目无需关心底层使用的是什么数据库,如果数据库迁移,只需要更换django的数据库引擎就可以
  5. 简述cookie和session的区别
    • Cooke
      • 实现方式:cookie是服务器发送给客户端浏览器的小型文本文件,通常存储在客户端的浏览器中。每当浏览器像服务器发送请求的时候,他都会将相应的cookie一同发送给浏览器
      • 存储位置:cookie存储在客户端,通常以键值对的形式存储在浏览器的cookie存储区域当中
      • 用途:主要用于在客户端保持状态信息,比如用户的登录状态,网站首选项等,cookie可以设置国旗时间,在过期时间之前一直保存在客户端,即使关闭了浏览器也能保存装状态
      • 安全性:由于存储在客户端,cookie荣毅收到跨站脚本xss和跨站请求CSRF的影响,为了提高安全性,额可以使用httponly和secure等属性来限制cookie的访问性
    • session
      • 实现方式: session是在服务器端维护的关于用户会话的信息。当用户首次访问网站时,服务器会为其分配一个唯一会话的标识符session id,并将该标识符存储在服务器上。客户端通常会在cooke中存储该会话的标识符,以便在后续请求中发送给服务器
      • 存储位置:session数据存储在服务器端的内存,数据库或者其他持久化存储中
      • 用途:用于存储用户的临时会话的数据,比如用户的状态,购物车的内容等,session数据在用户关闭浏览器或者一定时间内不活动是会过期并清除
      • 安全性,由于存储在服务器端,session相对于cookie更安全,不容易受到客户端的攻击,但是,在共享sessionid的情况下任然可能存在会话劫持的风险
  6. 请简述TCP/UDP的区别
  • tcp和udp是两种网络传输协议,他们在数据传输的方式,特点和适用场景上有很大的区别
  • 连接性:
    • TCP是以中面向连接的协议,他在数据传输前需要先建立连接,然后进行数据传输,最后在选择释放连接
    • UDP是一种无连接的协议,每个数据包都是独立的,发送端发送数据后,不需要等待确认,也不需要维护连接状态
    • 可靠性:
      • TCP提高可靠的数据传输,它使用序列表,确认和重传机制来确保数据的可靠性和顺序型,确保数据不丢失不重复按序到达。
      • UDP不保证数据的可好行,他只是简单的将数据从一段发送到另外一端,不进行任何或者重传操作,因此可能会导致数据丢失,重复或者无序到达
    • 数据量:
      • TCP适用于大量数据的传输,他对数据包的大小没有限制,并在传输过程中会进行拥塞控制和流量控制,以确保网络的稳定性和公平性
      • UDP是适用于少量数据的传输,他对数据包的大小由一定的限制,通常建议在网络良好的情况下使用,不适合大数据的传输
      • 延迟和效率
        • TCP在数据传输前需要建立连接,这会增加一定的延迟,但由于提供了了可靠性保证,适用于对传输延迟要求比较高的场景
        • UDP在无连接的情况下传输数据,不需要建立连接,因此具有较低的延迟,但由于不提供可靠性的保证,适用于对传输效率要求高, 可以容忍数据丢失的场景
      • 使用场景:
        • TCP适用于需要可靠传输 ,数据顺序到达,传输延迟相对较低的场景,比如网页浏览,文件下载,电子邮件等
        • UDP适用于对传输延迟和效率要求较高,可以容忍数据丢失的场景,比如音频流媒体,在线游戏,等
        • 对应的协议
          • FTP,telnet,smtp,pop3,http
          • DNS,SNMP,TFTP
  1. 说一下tcp的三次握手四次挥手
    • 三次握手
      • 客户端发送请求:客户端发送一个syn包给服务器,并进入syn_sent状态
      • 服务器响应:服务器接收到syn后,发送一个ack给客户端作为应答,同时也发送一个syn包给客户端,进入syn_recv状态
      • 客户端确认:客户端收到服务器的ack和syn包之后,发送一个ack给服务器确定,确认建立连接,双方进入established状态
    • 四次挥手
      • 客户端发送关闭请求:客户端发送一个fin包给服务器,请求关闭连接,进入fin_wait状态
      • 服务端确认:服务器收到fin包之后,发送一个ack包作为应答,进入close_wait状态
      • 服务端发送关闭请求:服务端发送一个fin包给客户端,请求关闭连接,进入last_ack状态
      • 客户端确认关闭客户端收到服务的fin包之后,发送一个ack包给服务器,确认关闭连接,进入time_wait状态,当客户端的time_wait时间结束后,关闭连接
  2. 在浏览器中输入url地址到显示主页的过程
    • 解析URL,当你在浏览器的地址栏中输入url时候,浏览器会首先对该url进行解析,分解出协议,主机口,域名端口号,路径等信息
    • DNS解析:浏览器需要知道服务器的IP地址才能像其发送请求,因此会进行DNS解析,将主机名解析为对应的IP地址。如果浏览器缓存中由对应的ip地址,则直接使用缓存;否则,像本地DNS服务器发送请求,并获取IP地址
    • 建立TCP连接:浏览器使用http或者https协议像服务器发送连接请求。如果URL中指定了端口号,则直接使用该端口号;否则http默认使用80端口,https默认使用443端口,此时就会经理TCP的三次握手的过程,确立客户端和服务端之间的连接
    • 发送http请求:当TCP建立成功之后,浏览器像服务器发送http请求,请求包括请求方法,请求头等,此时服务器会根据请求的内容进行处理,并返回相应的结果
    • 服务器处理请求:服务器拿到http请求之后会根据请求内容执行相应的处理逻辑,例如查询数据库读取文件等,并声称http响应
    • 返回http响应:服务器处理玩请求之后,将生成的http响应发送给客户端。http响应包括状态码等
    • 接受响应并渲染页面:浏览器收到服务器返回的http响应后,会解析响应内容并渲染页面。如果响应的是html文档,则浏览器会根据html内容构建dom树,并加载其中的样式表,js脚本等资源
    • 显示页面 ,当DOM树构架完成之后,浏览器会根据css央视都i页面进行排版,并将排版好的页面内容显示在浏览器窗口中。此时,页面中的图像,文本等都会显示出来
    • 连接关闭,等待页面显示完成之后,浏览器和服务器之间的TCP连接可能会被关闭,释放资源并结束通信
  3. 对flask蓝图的理解
  • . FLask蓝图是flask框架中的以中组织代码的方式,用于将应用程序拆分为更小的可重用的模块。他提供了以中将视图,模板,静态文件等相关代码组织在一起的方式,使得大型应用程序更易于管理和维护
  • 蓝图的主要优势在于他可以将应用拆分为多个模块,并允许每个模块具有自己的路由,视图函数,模板灯光等,从而实现了代码的模块化和重用型,通过蓝图我们可以将不同功能的代码分开,使得代码更具可读性可维护性和可扩展性
  1. Flask 和 Django 路由映射的区别?
    • 在django中,路由时浏览器访问服务器时,先访问项目中的url在由项目中的url找到应用中的url,这些url时放在一个列表里的,遵从从前往后批评日的规则。在flask中,路由时通过装饰器给每个试图函数提供的,而且根据请求方式的不同可以一个url用作不同的作用
Python面试题大全(三):Web开发(Flask、爬虫) WSGI:web服务器网关接口,是一套协议。用于接收用户请求并将请求进行初次封装,然后将请求交给web框架。实现wsgi协议的模块:wsgiref,本质上就是编写一socket服务端,用于接收用户请求(django)werkzeug,本质上就是编写一个socket服务端,用于接收用户请求(flask)uwsgi:与WSGI一样是一种通信协议,它是uWSGI服务器的独占协议,用于定义传输信息的类型。uWSGI:是一个web服务器,实现了WSGI的协议,uWSGI协议,http协议。 阅读详情

相关推荐

全网最全!精心整理 200 道 Python 面试题,附详细解答(一)

为帮助大家更好地备战 Python 面试,我们精心整理了全网最全的 200 道 Python 面试题,并附上详细解答,旨在帮助大家巩固知识体系,轻松应对各类面试挑战。我们将这 200 道题目分类成 13 大模块,通过以下 9 篇文章分享给大家!

fengshi_fengshi的专栏 1426

python web面试题部分汇总

** 0.深拷贝和浅拷贝的区别?** 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。好处:只拷贝引用,不增加内存 2. copy.deepcopy 深拷贝 拷贝对象及其子对象 好处:可用于备份,源数据被修改它不会被影响 可变类型(list,dict):浅拷贝只拷贝第一层,深拷贝会拷贝所有层 不可变类型(int,string,float,tuple):深浅拷贝都一................................................

lyp_优快云的博客 4601

Zotero PDF Translate插件实战:DeepL API免费申请与高效翻译配置指南

本文提供Zotero PDF Translate插件配置DeepL API的完整实战指南。详细介绍了如何免费申请DeepL API密钥,解决国内访问问题,并在插件中完成精细配置,实现文献阅读时的无缝划词翻译,大幅提升科研人员和学生的英文文献阅读效率。

rum55的博客 457

Python-Web开发岗位 面试题大全

一 python基础 1. 解释一下Python中的三元运算 如果表达式为True,就执行[on true]中的语句。否则,就执行[on false]中的语句 2. 解释GIL全局解释器锁 GIL的全称是:Global Interpreter Lock,意思就是全局解释器锁, CPython在执行多线程的时候并不是线程安全的,所以为了程序的稳定性,加一把全局解释锁,能够确保任何时候都只有一个Pyt...

H_sen's Blog 2647

Window10 intel realsense D435安装并实现opencv显示realsense读取的彩色和深度数据(QT+openCV+rsD35)

(1)点击"官方指南" 来到下载页,->最新的稳定版本发布 (本人下的2.16.5,现在最新2.17.0) 不需要做开发,只要下载Intel RealSense Viewer就好,这个就是相机的可视化界面,简洁明了。对应的安装包是Intel.RealSense.Viewer.exe。 本人的毕设要用到深度图做开发,所以安装Intel.RealSense.SDK.exe,SDK...

Pabebe的博客 1万+

ubuntu打实时内核补丁教程以及安装后显卡驱动问题解决方法

在ubuntu20.04上安装成功,亲测有效 目录ubuntu打实时内核补丁教程1、下载实时内核2、解压和打补丁(patch)3、安装依赖和编译安装4、修改一些文件,便于之后切换内核5、重启电脑实时内核版本下安装nvidia显卡驱动的问题1、先切换回之前的内核(非实时)版本2、重装之前内核(非实时)版本下的显卡驱动3、切换回实时内核(按照上面的步骤)4、在实时内核下安装显卡驱动 ubuntu打实时内核补丁教程 安装目标系统:ubuntu20.04 电脑配置:i9,2080ti 1、下载实时内核 打开终端,输

weixin_39275295的博客 7996

python web 面试题汇总

转自https://github.com/taizilongxu/interview_python 1 Python的函数参数传递 看两个例子: a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun(a) print a # [1] 所有的变量都可以理解是内存中一...

ideaaaa的博客 1408

8位2路选择器设计

8位2路选择器设计

好好学习,天天向上 4289

金三银四,50道必备的Python面试题(建议收藏)

大家好,我是小F~在过去的2020年,Python赢得了年度TIOBE编程语言奖,成为过去一年最受欢迎的编程语言。在数据科学和机器学习等领域中,被广泛使用。正值“金三银四”招聘季,小F给大...

法纳斯特 2637

UWB 多传感器通信的纳秒无线位置和时钟同步方法

利用UWB高精度的特点,实现多节点下的无线时钟同步和定位。通过优化硬件架构,减少不确定延迟的影响,系统可以提供纳秒级时钟同步消息

DT程序员的博客 1328

【AHE数据集】历史/未来全球网格热排放数据 PF-AHF

AHE数据集

WW、forever的博客 127

2023年Python最新面试题汇总及答案

1 、什么是Python?为什么它会如此流行?Python是一种解释的、高级的、通用的编程语言。Python的设计理念是通过使用必要的空格与空行,增强代码的可读性。它之所以受欢迎,就是因为它具有简单易用的语法 2 、为什么Python执行速度慢,我们如何改进它?Python代码执行缓慢的原因,是因为它是一种解释型语言。它的代码在运行时进行解释,而不是编译为本地语言。为了提高Python代码的速度,我们可以使用CPython、Numba,或者我们也可以对代码进行一些修改。1. 减少内存占用。

love_521_的博客 2万+

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

funfan的博客 2970

Python工程师面试题 与Python Web相关

得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web服务来说,Tornado 是一个理想的 Web 框架。而flup是WSGI的一种实现,Spawn-fcgi是用于管理flup进程的一个工具,可以启动多个wsgi进程,并管理它们。执行目录下所有的测试(所有的test*.py文件):运行测试的时候,测试程序会在所有以test开头的文件中查找所有的test cases(inittest.TestCase的子类),自动建立测试集然后运行测试。

chinaherolts2008的博客 833

基于Scrapy+Playwright的学术会议信息智能爬取系统实战

本文详细介绍如何使用Python构建一个高效的学术会议信息爬取系统,结合Scrapy框架和Playwright无头浏览器技术,实现对全球学术会议数据的自动化采集、清洗和存储。文章包含完整的技术方案设计、代码实现细节以及性能优化策略,可帮助读者快速掌握现代网络爬虫开发的核心技术。关键词:Python爬虫、Scrapy、Playwright、学术会议、数据采集、反爬对抗python复制下载。

2201_76125261的博客 710

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

300道Python面试题,备战春招!

作者 | kenwoodjw 责编 | Jane 出品 | Python大本营(ID:pythonnews) 程序员转行学什么语言? https://edu.youkuaiyun.com/topic/ai30?utm_source=csdn_bw 过年开工回来到现在,营长每天在地铁里只看到了两家公司的广告:前两周是拉勾网,最近都是 Boss直聘,求职、跳槽到现在,你是否已...

AI科技大本营 4264

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python web 面试题

python web 面试题

qq_40229790的博客 194

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python面试题_300道Python面试题

Python 工程师也分不同的技术岗位,初级、中级与高级开发工程师需要具备的技能也不同。这个面试题覆盖的知识点按照由易到难罗列,分为【Python 基础】与【Python 高级】。【Python 基础】 1~3 (文件操作、模块与包、数据类型)知识点,虽然被归类为基础题,但大家在实际解题过程中还需要更多的思考,是否情况都考虑全面了。高级题部分就不用说了,都是一些在学习时有难度,不能一下就 get ...

weixin_39715538的博客 1287

Python web相关的一些题

写出常用的bootstrap的样式。 table table-bordered table-striped table-hover active danger info success from-group from-control checkbox radio has-error 什么是响应式布局? 一个网站能够兼容多个终端,而不是为了每一个终端做一个特定的版本 请通过jQuery发...

浩仔 247

python工程师面试题-Python工程师面试题 与Python Web相关

本文为大家分享的Python工程师面试题主要与Python Web相关,供大家参考,具体内容如下1、解释一下 WSGI 和 FastCGI 的关系?CGI全称是“公共网关接口”(CommonGateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php...

weixin_39637545的博客 217

python面试题_300道Python面试题,备战春招!

作者 | kenwoodjw责编 | Jane出品 | Python大本营(ID:pythonnews)过年开工回来到现在,营长每天在地铁里只看到了两家公司的广告:前两周是拉勾网,最近都是 Boss直聘,求职、跳槽到现在,你是否已经成功,offer 在手了呢?也正是这个广告,提醒了营长,是不是要给大家准备一些笔试题、学习资料... ...正所谓”知己知彼,百战不殆“,自己埋头复习,掌握...

weixin_39525933的博客 209

Python相关作业

而是在运行时根据赋值自动确定和改变变量类型。这种灵活性使得 Python 代码更加简洁和高效,但也需要开发者在使用时注意类型相关的潜在问题。

2302_80953964的博客 757

300道Python面试题

转自:https://www.toutiao.com/i6670316931561554436/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1553132523&app=news_article&utm_source=mobile_qq&utm_medium=toutiao_ios&g...

xiaoxianerqq的专栏 505

python web-Java web 和 Python web??

个人认为,Java属于高大上的编程语言,虽然语言在泛型方面不够完整,但是却比较靠谱,企业级应用也最为广泛。python属于小而美,适合做一些内聚性很强的工具。两种编程语言各有优势,下面我按照自己的理解简单说下Java web开发和Python web开发的区别:Python的好处是开发、部署都很快,变更起来很容易,代码量小所以抛弃起来也很容易,不容易背上历史负担;如果你是稳扎稳打写了几百个Java...

weixin_37988176的博客 3802

Python面试题300道,备战春招!

本文转载自AI科技大本营公众号 作者 | kenwoodjw 责编 | Jane 出品 | Python大本营(ID:pythonnews) 过年开工回来到现在,营长每天在地铁里只看到了两家公司的广告:前两周是拉勾网,最近都是 Boss直聘,求职、跳槽到现在,你是否已经成功,offer 在手了呢? 也正是这个广告,提醒了营长,是不是要给大家准备一些笔试题、学习资料... ....

优快云高校俱乐部官方博客 949
上一篇: Python中单下划线和双下划线
下一篇: 【MySQL】的相关面试题
HelloFif
博客等级 码龄7年 206粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值