Flask-1:介绍


Flask-1:介绍

一、Flask简介

  • :Flask是一个轻量级web框架,使用python语言编写;
  • :较其他同类型框架更为灵活、轻便、容易上手;
  • :小型团队在短时间内就可以完成功能丰富的中小型网站或web服务的实现。

定制化

  • Flask具有很强的定制性,用户可以根据自己的需求来添加相应的功能;
  • 在保持核心功能简单的同时实现功能的丰富与扩展;
  • 其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

二、Flask的特点

1、微框架

Flask是一个python实现的web开发微框架,但是这个“微”并代表着Flask功能比较简陋、有所欠缺。

微框架中的“微”意味着

  • Flask旨在保持核心简单而易于扩展;
  • Flask不会替用户做出太多决策,比如使用何种数据库;
  • Flask的选项(比如使用何种模板引擎)通常有多个,用户很容易替换。

2、Flask的扩展性

  • 默认情况下,Flask 不包含数据库抽象层、模板引擎、身份认证或其他任何已有多种库可以胜任的功能;
  • 但是Flask支持用扩展来给应用添加这些功能,应用程序可以很方便的集成这些扩展;
  • 众多的扩展提供了数据库集成、表单认证、上传处理、各种各样的开放认证技术等功能。

Flask与扩展之间的关系

3、约定优于配置

  • 设计不好的框架通常需要多个配置文件,每个都有许多设置选项,程序员需要记忆大量的参数配置;
  • 但Flask遵循约定优于配置(Convention Over Configuration),也称作按约定编程是一种软件设计范式
  • 目的在于减少软件开发人员所需要做出的约定的数量,从而将开发变得简单,而又不失去其中的灵活性,开发人员仅仅需要规定应用中不符合约定的部分;
  • Flask存在有众多的配置选项,但是在最初始状况下,它们都有一个常用的默认值,并会遵循一些惯例;
  • 例如:按照惯例,模板和静态文件分别存储在应用python源代码树下的子目录templates和static里;
  • 虽然这个配置可以修改,但通常不必这么做,尤其是在刚开始学习的时候。

三、Flask与Django的比较

两个框架的区别

其实两者最主要的区别在于:Django功能大而全,Flask只包含基本的功能。

  • Django采用一站式解决的思路,Django集成有模板、表单、路由、认证、基本的数据库管理等内建功能,开发者不用在选择应用的基础设施上花费大量的时间;

  • Django就像一个装潢好的房子(如下图),它提供了各种家具,直接入住即可;

  • 和Django不同,Flask只提供了最核心的功能,轻巧、简洁,通过定制第三方扩展来实现具体功能;

  • 默认情况下,不包含数据库抽象、用户认证、表单认证、发邮件等其他web框架经常包括的功能;

  • Flask依赖用各种灵活的扩展(比如邮件Flask Mail,用户认证Flask Login,数据库Flask SQLAlchemy)来给web应用添加额外功能;

  • Flask就像一个没有装潢的毛坯房(如下图),用户需要自己选择各种家具才能入住。

四、新手入门推荐

  • Flask是一个轻量级的web框架,只提供核心技术,较其他同类型框架更为轻便容易上手,适用于小型团队在短时间内就可以完成功能丰富的中小型网站。
  • 与之相比,Django是一个重量级的web框架,内置许多常用的扩展,这些功能是由官方和社区共同维护的,其健壮性高,有利于保障项目质量。
  • 推荐新手学习Flask框架,可以先从Flask开始,后使用Django重构,因为如果直接上Django,作为新手,面对Django内置各种繁杂功能产生很多疑惑。
  • 就如同搭积木,如果直接给你一个搭好的模型,再拆开后(逆向过程),让你指出每块积木的作用,你可能会有疑惑。但是让你亲自一步步去搭好后(正向过程),再去拆解模型,你对每块积木的都会有不错的了解。
  • Flask开发就像是这个正向过程,自己一步一步去集成想要的扩展,完善网站,每一步都亲自动手做一遍,有助于理解web开发的很多概念。
  • Django开发就像是逆向过程,Django已经帮我们集成了许多常用的扩展,用户要做的就是去学习这些扩展的使用。

文章作者: 刘宇亭
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 刘宇亭 !
评论
  目录