e媒网络

一切皆可能 e媒网络 http://www.eMay.net

博客园 首页 新随笔 联系 订阅 管理

1. 著名的Python Web 开发框架有哪些?

A. Django 框架  B. Flask框架  C. tornado框架  D. Pyramid 框架

 

2. Flask-WTF是什么?有什么特点?

Flask-wtf是一个用于表单处理,校验并提供csrf验证的功能的扩展库。Flask的简单WTForms集成,包含CSRF、文件上传和Recaptcha集成。flask-wtf可以保护表单免受跨站请求伪造(CSRF)的攻击,恶意网站将请求发送到被攻击者已登录的其他网站时就会引发CSRF

 

3. 什么是wsgi?
WSGI(Web Server Gateway Interface,Web 服务器网关接口)则是Python语言中1所定义的Web服务器和Web应用程序之间或框架之间的通用接口标准。


WSGI就是一座桥梁,桥梁的一端称为服务端或网关端,另一端称为应用端或者框架端,WSGI的作用就是在协议之间进行转化。WSGI将Web组件分成了三类:Web 服务器(WSGI Server)、Web中间件(WSGI Middleware)与Web应用程序(WSGI Application)。


Web Server接收HTTP请求,封装一系列环境变量,按照WSGI接口标准调用注册的WSGI Application,最后将响应返回给客户端。

 

4. Flask框架依赖哪些组件?
Route(路由)
templates(模板)
Models(orm模型)
blueprint(蓝图)
Jinja2模板引擎

 

5.列举使用过的Flask第三方组件?

flask_bootstrap

flask-WTF

flask_sqlalchemy

 

6.列举Http请求中的状态码?

1xx —— 元数据 
2xx —— 正确的响应 
3xx —— 重定向 
4xx —— 客户端错误 
5xx —— 服务端错误 

100 Continue。客户端应当继续发送请求。 
200 OK。请求已成功,请求所希望的响应头或数据体将随此响应返回。 
201 Created。请求成功,并且服务器创建了新的资源。 
301 Moved Permanently。请求的网页已永久移动到新位置。 服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置。

302 Found。服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 
400 Bad Request。服务器不理解请求的语法。 
401 Unauthorized。请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。 
403 Forbidden。服务器拒绝请求。 
404 Not Found。服务器找不到请求的网页。 
500 Internal Server Error。服务器遇到错误,无法完成请求。

 

7. 列举Http请求中常见的请求方式?

1)opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)

2)Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)

3)Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改

4)Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)

5)Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)

6)Delete 请求服务器删除request-URL所标示的资源*(请求服务器删除页面)

7)Trace 回显服务器收到的请求,用于测试和诊断

8)Connect HTTP/1.1协议中能够将连接改为管道方式的代理服务http服务器至少能实现get、head、post方法,其他都是可选的

 

8.一个Web应用里,客户端和服务器上的 Flask 程序的交互可以简单概括为以下几步:

1)用户在浏览器输入URL访问某个资源。

2)  Flask接收用户请求并分析请求的URL。

3)为这个URL找到对应的处理函数。

4)执行函数并生成响应,返回给浏览器。

5)浏览器接收并解析响应,将信息显示在页面中。

 

9.Flask站点的模板文件以及静态文件默认约定存放目录是?

默认情况下,模板文件存放在项目根目录中的 templates 文件夹中,静态文件放在 static 文件夹下,这两个文件夹需要和包含程序实例的模块处于同一个目录下.

 

10.什么是CDN?

CDN指分布式服务器系统。服务商把你需要的资源存储在分布于不同地理位直的多个服器,它会根据用户的地理位直来就近分配服务器提供服务(服务器越近,资源传送就越快)。使用CDN服务可以加快网页资源的加载速度,从而优化用户体验。对于开源的css和J a v a S c r i p t库,CDN提供商通常会免费提供服务。

 

11.视图函数返回内容有哪些?

视图函数可以返回最多由三个元素组成的元组:响应主体、状态码、首部字段。其中首部字段可以为字典,或是两元素元组组成的列表。

 

12. get、post、head、put、delete、options、trace 的区别

1)get请求是用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。
在这里我们认为get请求是安全的,以及幂等的。安全就是指不影响服务器的数据,幂等是指同一个请求发送多次返回的结果应该相同。
特点:
get请求会把请求的参数附加在URL后面,这样会产生安全问题,如果是系统的登陆接口采用的get请求,需要对请求的参数做一个加密。
get请求其实本身HTTP协议并没有限制它的URL大小,但是不同的浏览器对其有不同的大小长度限制

 

2)post请求一般是对服务器的数据做改变,常用来数据的提交,新增操作。
特点:
post请求的请求参数都是请求体中
post请求本身HTTP协议也是没有限制大小的,限制它的是服务器的处理能力

 

3)HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。

4)put请求与post一样都会改变服务器的数据,但是put的侧重点在于对于数据的修改操作,但是post侧重于对于数据的增加。

5)delete请求用来删除服务器的资源。

6)options请求属于浏览器的预检请求,查看服务器是否接受请求,预检通过后,浏览器才会去发get,post,put,delete等请求。至于什么情况下浏览器会发预检请求,浏览器会会将请求分为两类,简单请求与非简单请求,非简单请求会产生预检options请求。

7)TRACE请求服务器回显其收到的请求信息,该方法主要用于HTTP请求的测试或诊断。

另外:这些不同方式的请求形式,只是一种规范定义而已,并不是说get请求无法修改服务器的数据,只是一种规范,比如你也可以所有的请求都通过post方式来访问,实现功能上面没有任何问题,只是说这种做不符合了规范而已,我们平常编码还是尽量符合规范比较好。

 

13.Flask的调试模式特点

1)可以帮助我们查找代码里面的错误,包括原因和代码位置。

2)支持本地开发。如果不是调试模式,每次修改代码后需要手动重新启动程序,这不是很友好,启用调试模式后,修改代码并保存时,程序自动重启,我们可以立即在浏览器中查看最新效果,如果出现问题,还能提供调试器以供调试。

调试模式能加快开发速度,但是要注意项目实施时,应关闭调试模式,提高程序运行的稳定性。

14.GET请求方式的字符长度有没有限制?

GET方法提交的数据大小长度并没有限制,Http协议规范没有对URL长度进行限制。但是,特定的浏览器及服务器对它有限制。各种浏览器和各种服务器的最大处理能力有所不同。

 

15.解释一下BluePrint蓝图的意思.

蓝图技术,可以帮助你实现flask应用的模块划分。尤其那些大的项目,如果不划分模块或者模块划分不合理,所带来的麻烦的是巨大的。

 

16.解释一下token的意思.

token是一种身份验证的机制,初始时用户提交账号数据给服务端,服务端采用一定的策略生成一个字符串(token),token字符串中包含了少量的用户信息,并且有一定的期限。服务端会把token字符串传给客户端,客户端保存token字符串,客户端可以在每次请求的时候带上 token 证明自己的合法地位,token其实通俗点讲也可以理解为暗号,在数据传输之前要进行暗号对接和核对,不同的暗号被授权不听的数据操作,

 

17.为什么要用token?

1)token 完全由应用管理,所以它可以避开同源策略

注:什么是同源策略(所谓的同源,指的是协议,域名,端口相同。浏览器处于安全方面的考虑,只允许本域名下的接口交互,不同源的客户端脚本,在没有明确授权的情况下,不能读写对方的资源。同源策略是必须的。如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问)

 

2)Token 可以避免 CSRF攻击

注:(你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。后面这个链接是我看到的对于这个CSRF很详细的介绍,感兴趣可以看下浅谈CSRF攻击方式)

 

3)Token 可以是无状态的,可以在多个服务间共享。

 

18.CSRF是什么?

CSRF全称为跨站请求伪造(Cross-site request forgery),是一种网络攻击方式,也被称为 one-click attack 或者 session riding。

 

19.下面有关直方图的正确说法是:

1) 直方图法是从总体中随机抽取样本,将从样本中获得的数据进行整理后,用一系列等宽的矩形来表示数据。矩形宽度表示数据范围,矩形高度表示在给定范围内数据的频数(频率)。这样的图形称为直方图。通过对直方图的形态与公差的相对位置的研究,可以掌握过程的均值和波动情况,以及产品质量符合规范的程度。

2)签名大致:hist

3)签名大致:bar

4)直方图,又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。直方图是数值数据分布的精确图形表示。 这是一个连续变量的概率分布的估计,并且被卡尔·皮尔逊首先引入。

 

20.写出常见图表的名称(包括:英文及汉语)

bar:柱状图

line:线图

scatter:散点图

pie:饼状图

box:箱体图

hist或histogram:直方图

 

21. 用于数据分析与科学计算可视化的Python模块比较多,填写合适的模块名称:

Numpy模块是科学计算包,提供了Python中没有的数组对象,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换以及随机数生成等功能,可与C++、Fortran等语言无缝结合。

Pandas模块是基于Numpy的数据分析模块,提供了大量的标准数据模型和高效操作大型数据集所需要的工具,可以说Pandas使得Python能够成为高效且强大的数据分析环境的重要因素之一。

Scipy模块依赖Numpy,提供了更多的数学工具,包括矩阵运算、线性方程组求解、积分、优化等。

Matplotlib是比较常用的绘图模块,可以快速地将各种计算结果以各种图形形式展示出来。

Pandas主要提供了3种数据结构:1)Series,带标签的一维数组;2)DataFrame,带标签且大小可变的二维表格结构;3)Panel,带标签且大小可变的三维数组.

posted on 2022-06-02 17:50  e媒网络技术团队  阅读(142)  评论(0编辑  收藏  举报