返回顶部

面试3

1 说一下 Django,MIDDLEWARES 中间件的作用?

    是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出,每个中间件组件是一个独立的Python类。

         作用:使用中间件,可以干扰整个处理过程,每次请求中都会执行中间件的这个方法。

2  ngnix 的正向代理与反向代理

正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

结论:正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

反向代理:举例:用户想访问:"http://ooxx.me/readme",但ooxx.me上并不存在readme页面,他是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户,但用户并不知情,这很正常,用户一般都很笨。这里所提到的ooxx.me 这个域名对应的服务器就设置了反向代理功能。

  结论:反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。

3 uWSGI 是什么?

uWSGI 是一个 Web 服务器,它实现了 WSGI 协议、uwsgi、http 等协议。uwsgi 协议是一个 uWSGI 服务器自有的协议,它用于定义传输信息的类型(type of information),每一个 uwsgi packet 前 4byte 为传输信息类型描述,它与 WSGI 相比是两样东西。Nginx 中 HttpUwsgiModule 的作用是与 uWSGI 服务器进行交换。为什么有了 uWSGI 为什么还需要 nginx?因为 nginx 具备优秀的静态内容处理能力,然后将动态内容转发给 uWSGI 服务器,这样可以达到很好的客户端响应。

4 mvvm 框架?

MVVM:将“数据模型数据双向绑定”的思想作为核心, Model 和 ViewModel 之间的交互是双向的,因此视图的数据的变化会同时修改 数据源,而数据源数据的变化也会立即反应到 View 上。

5 你对 Django 的认识?

Django 是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库 结构、以及全功能的管理后台。 Django 内置的 ORM 跟框架内的其他模块耦合程度高。应用程序必须使用 Django 内置的 ORM,否则就不能享受到框架内提供的种种基于其 ORM 的便利。Django 适用的是中小型的网站,或者是作为大型网站快速实现 产品雏形的工具。 Django 模板的设计哲学是彻底的将代码、样式分离; Django 从根本上杜绝在模板中进行编码、处理数据的可能。

6  Jieba分词?

Jieba 分词支持三种分词模式:

精确模式,试图将句子最精确地切开,适合文本分析;

全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

 功能:

分词,添加自定义词典,关键词提取,词性标注,并行分词

7 性能测试 loadrunner

LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。企业使用 LoadRunner 能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

8 Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。

Docker 容器相对于 VM 有以下几个优点:

1.启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久

2.资源利用率高,一台普通 PC 可以跑上千个容器

3.性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功 能,这一部分占据了额外的资源。

9  Django 重定向你是如何实现的?用的什么状态码?

使用 HttpResponseRedirect redirect 和 reverse 状态码:302,301

10  Tornado 的核心是什么?

Tornado 的核心是 ioloop 和 iostream 这两个模块,

前者提供了一个高效的 I/O 事件 循环,后者则封装了 一个无阻塞的 socket。

通过向 ioloop 中添加网络 I/O 事件,利用无 阻塞的 socket ,再搭配相应的回调函数,便可达到梦寐以求的高效异步执行。

 

 

 

 

 

 

 

posted @   Crazymagic  阅读(145)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示

目录导航