轻量级NoSQL数据库与PythonWeb-Flask框架组合使用2-Flask框架介绍

Posted Vax_Loves_1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了轻量级NoSQL数据库与PythonWeb-Flask框架组合使用2-Flask框架介绍相关的知识,希望对你有一定的参考价值。

首先引入Flask的官方文档定义:Flask是Python中一个微型的Web开发框架。对于学习Flask框架的你来讲必须了解以下几个特点。

什么是 “微”?

默认情况下,Flask 并不包含数据库抽象层,表单验证或者任何其它现有的库( Django )能够处理的。相反,Flask 支持扩展,这些扩展能够添加功能到你的应用,像是 Flask 本身实现的一样。众多的扩展提供了数据库集成,表单验证,上传处理,多种开放的认证技术等功能。Flask 可能是“微”型的,但是已经能够在各种各样的需求中生产使用。

Flask 中的本地线程

Flask 其中的一条设计原则就是简单的任务保持简单;任务的实现不需要花费太多的代码也不会限制到你。 因此,Flask 的一些设计决定可能会让一些人感到很惊讶或者非正统。例如,Flask 内部使用了本地线程对象,这样在一个请求中不必在函数之间传递对象以保证线程安全。 这种方式是十分方便,但是为依赖注入或者尝试重用与请求挂钩的值的代码,需要一个有效的请求上下文。 Flask 项目对本地线程很公开的,并不会去隐藏它们,在使用到它们的代码和文档里面都会指出。

小心翼翼地进行 Web 开发

在构建 Web 应用程序时,始终考虑到安全性。

Flask 能够让你免受现代 Web 应用常见的一个安全问题的困扰:跨站脚本攻击(XSS)。 如果你不是刻意地把不安全的 html 标记成安全的,Flask 以及底层的 Jinja2 模版引擎会守护着你。 但目前还存在着更多的方法来引起安全问题。

开发者必须在为需求编写代码时留心安全隐患,在这点上,Flask 与其它框架没有区别。

Flask框架介绍

Flask是一个Python的小型Web程序框架,它基于Wekzeug和Jinja 2两个库,有很好的可扩展性。选择学习Flask就是基于他简洁和可扩展的特性。

Web应用的本质是,客户端向服务器发送请求,服务器读取请求内容,返回给客户端相应的数据。如果是静态网站,譬如Hexo博客,客户端输入地址,服务器直接返回静态的HTML页面即可,服务器程序并没有其他任务。但对于动态网站,服务器程序会根据请求的不同,对HTML页面进行相应的加工,返回不同内容的页面。

对应这种特质,一个Web程序,就是响应不同HTTP请求的函数。使用Web框架后,我们在编写Web应用,就是编写对应URL处理函数。

在Flask中URL与处理函数的对应,用@app.route()装饰器实现。route同时能识别不同的HTTP请求类型。

Flask返回页面,可以用render_template()来渲染Jinja模板。

同时HTTP请求中也可能包含客户端上传的数据,用request即可获得。同样利用request还可以获得Cookie数据。

通过redirect()我们可以重定向用户的请求,以达到权限控制的目的。同时用@app.errorhandler()来返回个性化的错误提醒页面。

利用make_response()可以设置响应的内容,状态码,头部信息等。

利用Session可以设置干安全的Cookie。

在网站的交互中,可以利用flash()发出反馈实时信息,模板中可以利用get_flashed_messages()来获得反馈信息。

服务器程序可以使用app.logger来记录日志内容。

以上是关于轻量级NoSQL数据库与PythonWeb-Flask框架组合使用2-Flask框架介绍的主要内容,如果未能解决你的问题,请参考以下文章

轻量级NoSQL数据库与PythonWeb-Flask框架组合使用2-Flask框架介绍

轻量级NoSQL数据库与PythonWeb-Flask框架组合使用1-SQLite3介绍及安装教程

对 .NET 的 Karvonite NoSQL 文档数据库/持久性存储有任何经验吗?

数据管理大盘点 | NoSQL和NewSQL

为什么用NoSQL(非关系型数据库)?

mycat