python框架面试题

Django,MIDDLEWARES 中间件的作用?

中间件是介于 request 与 response 处理之间的一道 处理过程,相对比较轻量级,并且在全局上改变 django 的输入 与输出。

ngnix 的正向代理与反向代理

正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向 代理发送一个请求并指定目标(原始服务器),然后代理向原始 服务器转交请求并将获得的内容返回给客户端。客户端必须要 进行一些特别的设置才能使用正向代理。
反向代理正好相反,对于客户端而言它就像是原始服务器, 并且客户端不需要进行任何特别的设置。客户端向反向代理的 命名空间中的内容发送普通请求,接着反向代理将判断向何处 (原始服务器)转交请求,并将获得的内容返回给客户端,就像 这些内容原本就是它自己的一样。

uWSGI 是什么?

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

mvvm框架?

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

你对 Django 的认识?

Django 是走大而全的方向,它最出名的是其全自动化的管 理后台:只需要使用起 ORM,做简单的对象定义,它就能自动生 成数据库结构、以及全功能的管理后台。
Django 内置的 ORM 跟框架内的其他模块耦合程度高。
应用程序必须使用 Django 内置的 ORM,否则就不能享受到 框架内 供的种种基于其 ORM 的便利;理论上可以切换掉其 ORM 模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不 如一开始就去毛胚房做全新的装修。
Django 的卖点是超高的开发效率,其性能扩展有限;采用 Django 的项目,在流量达到一定规模后,都需要对其进行重构, 才能满足性能的要求。
Django 适用的是中小型的网站,或者是作为大型网站快速 实现产品雏形的工具。
Django 模板的设计哲学是彻底的将代码、样式分离; Django 从根本上杜绝在模板中进行编码、处理数据的可能。

Jieba分词

Jieba 分词支持三种分词模式:
精确模式,试图将句子最精确地切开,适合文本分析;
全模式,把句子中所有的可以成词的词语都扫 出来, 速 度非常快,但是不能解决歧义;
搜索引擎模式,在精确模式的基础上,对长词再次切分, 高召回率,适合用于搜索引擎分词
功能:
分词,添加自定义词典,关键词 取,词性标注,并行分 词,Tokenize:返回词语在原文的起始位置,ChineseAnalyzer for Whoosh 搜索引擎

性能测试 loadrunner

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

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的 应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。
Docker 重新定义了程序开发测试、交付和部署过程的开放平台, Docker 则可以称为构建一次,到处运行,这就是 docker 出的“Build once,Run anywhere”,通过 Docker 可以保持开发、测试和生产环 境高度的一致。
Docker 容器相对于 VM 有以下几个优点:
1.启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久
2.资源利用率高,一台普通 PC 可以跑上千个容器
3.性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功 能,这一部分占据了额外的资源
Docker 的容器利用了 LXC,管理利用了 namespaces 来做权 限的控制和隔离, cgroups 来进行资源的配置,并且还通过 aufs 来进一步 高文件系统的资源利用率。

hadoop 了解多少

Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充 分利用集群的威力进行高速运算和存储。
[1] Hadoop实现了一个分布式文件系统(HadoopDistributed File System),简称 HDFS。HDFS 有高容错性的特点,并且设计用来 部署在低廉的硬件上;而且它 供高吞吐量来访问应用程序的数据, 适合那些有着超大数据集的应用程序。HDFS 放宽了 POSIX 的要求, 可以以流的形式访问文件系统中的数据。
Hadoop 的框架最核心的设计就是:HDFS 和 MapReduce。HDFS 为海 量的数据 供了存储,则 MapReduce 为海量的数据 供了计算

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

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

Tornado 的核是什么?

Tornado 的核心是 ioloop 和 iostream 这两个模块,前者 供了一个高效的 I/O 事件 循环,后者则封装了 一个无阻塞的 socket 。通过向 ioloop 中添加网络 I/O 事件,利用无 阻塞的 socket ,再搭配相应的回调 函数,便可达到梦寐以求的高效异步执行。

你可能感兴趣的:(Django,python)