Flask(1)- 简介
背景
- 为啥要学,很久之前就学过点,没写文章
- 最近因为要写机器人工具,其实就是简单的纯服务端工具
- 反正 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)- 简介的更多相关文章
- Flask (一) 简介
Flask简介 Flask是一个基于Python实现的Web开发‘微’框架 'MicroFramework' Django是一个重型框架 官方文档: http://flask.pocoo.org/do ...
- Flask 框架 简介
一.Flask介绍 Flask是一个基于Werkzeug,Jinja 2 轻量级的web开发框架, 使用Python开发, 上手简单. 二.安装Flask 三.第一个Flask程序 1.编写app.p ...
- Flask框架简介,常用扩展包及两大核心
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都 ...
- Flask 参数简介
我们都知道学习了Flask的时候它里面的参数是有很多种的参数 都是需要相互进行调用传递的 今天就简要分析一些常见的参数 首先导入Flask之后看 源码 from flask import Flas ...
- Flask框架简介
Flask框架诞生于2010年,是Armin ronacher 用python语言基于Werkzeug工具箱编写的轻量级Web开发框架! Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展. ...
- Python框架 Flask 项目实战教程
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...
- python flask实现小项目方法
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走. 下载源码,运行 pip install -r requirements.txt 建立环境 python ...
- flask基础之安装和使用入门(一)
前言 Flask框架作为一个python极简化的web框架,它不像Django那样的重型,非常适合快速开发一些小型的应用.本人用flask开发了几个项目之后,慢慢研究flask底层的一些原理,开始一步 ...
- Flask—01-轻松入门Flask
Flask入门 WEB工作原理 C/S与B/S架构:客户端-服务器,浏览器-服务器 B/S架构工作原理 客户端(浏览器) <=> WEB服务器(nginx) <=> WSGI( ...
- Flask Web开发从入门到放弃(一)
第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...
随机推荐
- 说明位图,矢量图,像素,分辨率,PPI,DPI?
说明位图,矢量图,像素,分辨率,PPI,DPI? 显示全部 关注者 28 被浏览 7,031 关注问题写回答 邀请回答 添加评论 分享 2 个回答 默认排序 刘凯 21 人赞同了 ...
- LESS语法学习笔记
LESS 通过编写less文件来快速生成css文件,对css的语法进行了扩展 Less语法 注释 单行注释不会被编译,多行才会被编译 变量 less:定义变量用@ scss:定义变量用$ @num: ...
- java学习之旅2——set
var set = Collections.synchronizedSet(new HashSet<Integer>()); 可以这样来获得一个同步的集合. 对于HashSet, for循 ...
- Mysql索引的创建与删除
1. 创建索引 1.1 使用Alter创建索引 1 添加主键索引 特点:数据列不允许重复,不能为null,一张表只能有一个主键:Mysql主动将该字段进行排序 ALTER TABLE 表名 ADD P ...
- grasshopper之python电池执行逻辑
在grasshopper中,需要导入的包虽然不多,但是相当绕人,所要实现的操作往往找不到,暂时做个分类. 双击输入 python 电池: # 导入rhino 包 import Rhino #Rhino ...
- deeplearning模型库
deeplearning模型库 1. 图像分类 数据集:ImageNet1000类 1.1 量化 分类模型Lite时延(ms) 设备 模型类型 压缩策略 armv7 Thread 1 armv7 T ...
- OneFlow系统设计
OneFlow系统设计 本文的主要内容如下: OneFlow 的设计目标 OneFlow 的特色一:Actor 机制 OneFlow 的特色二:SBP 机制 总结 一.OneFlow 的设计目标 On ...
- cuDNN概述
cuDNN概述 NVIDIACUDA深度神经网络库(cuDNN)是GPU加速的用于深度神经网络的原语库.cuDNN为标准例程提供了高度优化的实现,例如向前和向后卷积,池化,规范化和激活层. 全球的深度 ...
- 使用Keil语言的嵌入式C编程教程(下)
使用Keil语言的嵌入式C编程教程(下) 用8051单片机进行定时器/计数器的计算与编程 延迟是应用软件开发中的重要因素之一.然而,在实现定时延迟的过程中,正常的延迟并不能给出克服这一问题的宝贵结果. ...
- Linux基础_vim命令
简介:Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. vi/vim 共分为三种模式,分别是命令模式(Command mode)也叫 ...