Flask面试常问

1.解释什么是Flask以及好处?

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其WSGI工具箱采用Werkzeug ,模板引擎则使用Jinja2。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
Flask是一个非常轻量级的框架,提供了搭建Web服务的必要组件,如果你不喜欢自带的组件,由于Flask良好的扩展性,你也可以使用其他开源的Flask扩展插件,甚至可以自己写一个,让喜欢折腾的开发者一展身手。

2. Django和Flask有什么区别?

Django可以说是一个全能型(all in one)的框架,自带管理后台;而Flask则是一个非常轻量级的框架,提供了搭建Web服务的必要组件。

3. Flask-WTF是什么,有什么特点?

Flask-WTF 提供 FileField 来处理文件上传,它在表单提交后,自动从 flask.request.files 中抽取数据。FileField 的 data 属性是一个 Werkzeug 。

4. 如何在Flask中访问会话?

“””
一个会话基本上允许记住从一个请求到另一个请求的信息。在Flask中,它使用签名的cookie,以便用户可以查看会话内容并进行修改。用户可以修改会话,只要它有密钥Flask.secret_key。
“””
程序可以把数据存储在用户会话中,用户会话是一种私有存储,默认情况下,它会保存在客户端cookie中。Flask提供了session对象来操作用户会话。
操作session就像操作python中的字典一样,我们可以使用
session[‘user’]获取值,也可以使用session.get(‘user’)获取值。
url_for()函数的第一个且唯一必须指定的参数是端点名,即路由的内部名字。默认情况下,路由的端点是相应视图函数的名字。

5. 谈谈restful?

REST是一种Web架构风格,它有六条准则:
1.客户端-服务端(Client-Server)
2.无状态(Stateless)
3.可缓存(Cachable)
4.分层系统(Layered System)
5.统一接口(Uniform Interface)
6.支持按需代码(Code-on-Demand,可选)
只要满足以上六条准则的Web架构可以说是Restful的。

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. 什么是wsgi?

WSGI:Web Server Gateway Interface的缩写。
WSGI是Python应用程序或框架和Web服务器之间的一种接口。

8. ORM的实现原理?

ORM将底层的数据库操作指令抽象成高层的面向对象操作。也就是说,如果我们需要直接使用数据库引擎,就需要写SQL语句,但是,如果使用ORM框架,我们对于诸如表、文档这一类的数据库实体就可以简化成对python对象的操作。
Python中最广泛使用的ORM框架是SQLAlchemy,它是一个很强大的关系型数据库框架,不仅支持高层的ORM,也支持使用低层的SQL操作,另外,它也支持多种数据库引擎,如MySQL、Postgres和SQLite等。

猜你喜欢

转载自blog.csdn.net/xijiao_jiao/article/details/81133387