前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【轻量级NoSQL数据库与PythonWeb-Flask框架组合使用】2-Flask框架介绍

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

作者头像
天道Vax的时间宝藏
发布2021-08-11 16:05:45
4920
发布2021-08-11 16:05:45
举报

首先引入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来记录日志内容。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 “微”?
  • Flask 中的本地线程
  • 小心翼翼地进行 Web 开发
  • Flask框架介绍
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档