专栏首页Devops专栏认识Flask框架

认识Flask框架

通过对比来了解Flask:

  • Django:

Python Web框架里比较有名当属Django,Django功能全面,它提供一站式解决方案,集成了MVT(Model-View-Template)和ORM,以及后台管理。但是缺点也很明显,它偏重。就像是一个装潢好的房子,它提供好了你要用的东西,直接拿来用就可以。

  • Flask:

Flask相对于Django而言是轻量级的Web框架。和Django不同,Flask轻巧、简洁,通过定制第三方扩展来实现具体功能。

可定制性,通过扩展增加其功能,这是Flask最重要的特点。Flask的两个主要核心应用是Werkzeug和模板引擎Jinja。

Flask框架

Flask作为Web框架,它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。

一切从客户端发起请求开始。

  • 所有Flask程序都必须创建一个程序实例。
  • 当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。
  • 此时,Web服务器使用一种名为WEB服务器网关接口的WSGI(Web Server Gateway Interface)协议,把来自客户端的请求都交给Flask程序实例。
  • Flask使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。
  • 在Flask程序中,路由一般是通过程序实例的装饰器实现。通过调用视图函数,获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后由Flask返回响应数据给浏览器,最后浏览器显示返回的结果。

为什么要用Web框架?

web网站发展至今,特别是服务器端,涉及到的知识、内容,非常广泛。这对程序员的要求会越来越高。如果采用成熟,稳健的框架,那么一些基础的工作,比如,网络操作、数据库访问、会话管理等都可以让框架来处理,那么程序开发人员可以把精力放在具体的业务逻辑上面。使用Web框架开发Web应用程序可以降低开发难度,提高开发效率。

总结一句话:避免重复造轮子。

Flask框架的诞生:

Flask诞生于2010年,是Armin ronacher(人名)用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。它主要面向需求简单的小应用。

Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login),都需要用第三方的扩展来实现。比如可以用Flask-extension加入ORM、窗体验证工具,文件上传、身份验证等。Flask没有默认使用的数据库,你可以选择MySQL,也可以用NoSQL。其 WSGI 工具箱采用 Werkzeug(路由模块) ,模板引擎则使用 Jinja2 。

可以说Flask框架的核心就是Werkzeug和Jinja2。

Python最出名的框架要数Django,此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架,但是Flask应该算是最灵活的框架之一,这也是Flask受到广大开发者喜爱的原因。

Flask扩展包:

  • Flask-SQLalchemy:操作数据库;
  • Flask-migrate:管理迁移数据库;
  • Flask-Mail:邮件;
  • Flask-WTF:表单;
  • Flask-script:插入脚本;
  • Flask-Login:认证用户状态;
  • Flask-RESTful:开发REST API的工具;
  • Flask-Bootstrap:集成前端Twitter Bootstrap框架;
  • Flask-Moment:本地化日期和时间;

Flask官方文档:

中文文档

英文文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Flask 初始化项目

    Devops海洋的渔夫
  • Flask-Script扩展命令行

    在Django中启动服务的时候,可以使用python manage.py runserver 或者 python manage.py shell,那么Flask...

    Devops海洋的渔夫
  • InfluxDB 设置数据保留策略,验证保留的数据存储大小

    在使用Telegraf+InfluxDB+Grafana监控服务器资源的时候,如果influxdb中的数据不设置超时过期的机制的话,那么数据就会默认一直保存。这...

    Devops海洋的渔夫
  • Python Flask 优秀资源大全

    版权: https://github.com/humiaozuzu/awesome-flask Awesome Flask ? =============...

    若与
  • 如何使用Flask编写Python Web API【Programming(Python)】

    在此快速教程中,使用Flask(增长最快的Python框架之一)从服务器获取数据。

    Potato
  • flask中的所有第三方模块大集合

    Flask-AppBuilder - Simple and rapid Application builder, includes detai...

    菲宇
  • 计算机技术|我的第一个Flask程序

    Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework),“微”并不是意味着把整个Web应用...

    算法与编程之美
  • 小白学Flask第一天 | 我的第一个Flask程序

    相信大部分人进来读这篇文章是因为以前没接触过Flask框架,这里我给大家介绍一下这个框架。

    Python进击者
  • 抄作业了!6 大 Flask 开源实战项目推荐

    Flask 是一个微型的 Python 开发的 Web 框架,基于 Werkzeug WSGI 工具箱和 Jinja2 模板引擎。Flask 使用 BSD 授权...

    叫我龙总
  • 《Flask Web开发》学习笔记

      前言:想熟练掌握一门web框架,为以后即将诞生的测试工具集做准备。为什么选择flask要做熟练掌握的一门框架,而不是其他的,最主要的原因是可以随意定制。

    py3study

扫码关注云+社区

领取腾讯云代金券