背景

  • 为啥要学,很久之前就学过点,没写文章
  • 最近因为要写机器人工具,其实就是简单的纯服务端工具
  • 反正 flask 也挺简单,一天快速过完
  • 概念会直接搬教程的,实操自己敲一遍再总结

参考教程

https://read.helloflask.com/c2-hello

http://www.imooc.com/wiki/flasklesson

Flask 简介

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

定制化

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

Flask 的特点

微框架

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

微框架中的 “微” 意味着

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

Flask 的扩展性

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

约定优于配置

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

Flask 与 Django 的比较

两个框架的区别

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

  • Django 采用一站式解决的思路,Django 集成有模板、表单、路由、认证、基本的数据库管理等内建功能,开发者不用在选择应用的基础设施上花费大量时间
  • Django 就像是一个装潢好的房子(如下图所示),它提供了各种家具,直接入住即可

Flask 相对于 Django 而言是轻量级的 Web 框架

  • 和 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 已经帮你集成了许多常用的扩展,用户要做的去学习这些扩展的使用

Flask(1)- 简介的更多相关文章

  1. Flask (一) 简介

    Flask简介 Flask是一个基于Python实现的Web开发‘微’框架 'MicroFramework' Django是一个重型框架 官方文档: http://flask.pocoo.org/do ...

  2. Flask 框架 简介

    一.Flask介绍 Flask是一个基于Werkzeug,Jinja 2 轻量级的web开发框架, 使用Python开发, 上手简单. 二.安装Flask 三.第一个Flask程序 1.编写app.p ...

  3. Flask框架简介,常用扩展包及两大核心

    Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都 ...

  4. Flask 参数简介

    我们都知道学习了Flask的时候它里面的参数是有很多种的参数  都是需要相互进行调用传递的  今天就简要分析一些常见的参数 首先导入Flask之后看 源码 from flask import Flas ...

  5. Flask框架简介

    Flask框架诞生于2010年,是Armin ronacher 用python语言基于Werkzeug工具箱编写的轻量级Web开发框架! Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展. ...

  6. Python框架 Flask 项目实战教程

    本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...

  7. python flask实现小项目方法

    本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走. 下载源码,运行 pip install -r requirements.txt 建立环境 python ...

  8. flask基础之安装和使用入门(一)

    前言 Flask框架作为一个python极简化的web框架,它不像Django那样的重型,非常适合快速开发一些小型的应用.本人用flask开发了几个项目之后,慢慢研究flask底层的一些原理,开始一步 ...

  9. Flask—01-轻松入门Flask

    Flask入门 WEB工作原理 C/S与B/S架构:客户端-服务器,浏览器-服务器 B/S架构工作原理 客户端(浏览器) <=> WEB服务器(nginx) <=> WSGI( ...

  10. Flask Web开发从入门到放弃(一)

    第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...

随机推荐

  1. 使用find命令查找大文件

    使用find命令查找大文件 find命令是Linux系统管理员工具库中最强大的工具之一.它允许您根据不同的标准(包括文件大小)搜索文件和目录. 例如,如果在当前工作目录中要搜索大小超过100MB的文件 ...

  2. 关于jmeter线程组和循环次数的设置

    初始设置:设置线程数 n = 80,循环次数a = 1,ramp-up period=5 一 计算最后一个线程的生成时间(last) 总共生成80个线程,总共需要5秒,每秒钟会启动16个线程,所以,第 ...

  3. Ubuntu 18.04安装 Adob Flash player

    1.Ctrl + Alt + T 打开命令终端,启用Canonical Partners Repository存储库 (最新的Flash插件位于Canonical Partners的存储库中,默认情况 ...

  4. mysql基础之视图、事务、索引、外键

    一.视图 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用 ...

  5. 案例分享:Qt modbus485调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.3.0)

    前言   西门子PLC.台达PLC.法兰克机床等等多年以前玩得比较多,有tcp/ip通讯也有modbus通讯,modbus又分为网络,485,232等.  医疗项目,焊接机器人项目,工控机床项目,数控 ...

  6. java和kotlin的可见性修饰符对比

    private 意味着只在这个类内部(包含其所有成员)可见: protected-- 和 private一样 + 在子类中可见. internal -- 能见到类声明的 本模块内 的任何客户端都可见其 ...

  7. Django基本文件配置

    1.setting.py (1) ALLOWED_HOSTS = ['*'] (2) INSTALLED_APPS = ['app_name'] (3) TEMPLATES 中的   'DIRS': ...

  8. 痞子衡嵌入式:改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常. 痞子衡的嵌入式技术交流群里有一位非常活跃的朋友(网名:文 ...

  9. 关于LSTM核心思想的部分理解

    具体资料可以查阅网上,这里提到一些难理解的点.别人讲过的知识点我就不重复了. LSTM 的关键就是细胞状态,按照水平线从左向右运行,如同履带,在整个链上运行. 根据时间t-1,t,t+1,我们可以看出 ...

  10. 前端工具 | JS编译器Monaco使用教程

    前言 我的需求是可以语法高亮.函数提示功能.自动换行.代码折叠 Monaco Monaco是微软家的,支持的语言很多,还有缩略地图,有时候提示不好用然后包体很大. The Monaco Editor ...