0开篇Flask mega-tutorial(Flask超级教程)

如需转载请注明出处。
win10+Python 3.6.3
本教程感谢作者:Miguel Grinberg。以下记录的内容均是融入自己的理解。

首先,认识一下:web开发框架(Web application framework)

是用来进行web应用开发的一个软件架构(或一组库和模块)。用来支持动态网站、网络应用程序、网络服务的开发。其类型有基于请求的和基于组件的两种框架。
有助于减轻网页开发时共通性活动的工作负荷,例如许多框架提供数据库访问接口、标准样板以及会话管理等,可提升代码的可再用性。再如不必担心如协议,线程管理等低层细节。

有网友举了个形象例子,可用来加深理解【框架】含义:将框架比作素描的结果,在素描的基础上涂上合适的颜色,就成为一副漂亮的画了。

其次,了解一下:Flask。第一个版本诞生于2010年,源于Flask作者一个愚人节玩笑,后来由于非常受欢迎,进而成为一个正式项目。

0.谷歌翻译flask [flɑ:sk],译作:;[化]烧瓶;[机]沙箱。打开Flask官网,看到最简洁的一句话:web development,one drop at a time。译作:web开发,一点一滴。一步一步地用Flask进行web开发。
一开始:Flask开发者为啥命名其为【译作】“烧瓶”,像用烧瓶在做化学实验一样,用滴管一点一滴进行实验?[大笑脸]。我像应该不是的!!
这里写图片描述
根据Flask官方logo,这个牛角状、辣椒状的logo,在中国21世纪的coder可不好理解为“壶”。Quora有人认为是:由动物犄角制作,通常用来装火药(火药?这是什么骚操作?你自己去研究吧),而不是装水的壶。
其实,百度搜索关键字“牛角火药桶/罐”,得到的结果倒是很给力,应该是答案。古代猎人用牛角来装火药,用那头小孔向枪管里放火药,火药更不会撒。
真正是什么玩意,去问Armin ronacher吧。哈哈。不过谷歌搜索图片关键字“flask”,大部分结果是【水壶】(现代),当然也有【烧瓶】。
总结:它是什么无所谓,重点是你了解过。

1.Flask是一个BSD许可的基于Werkzeug、Jinja2的Python(语言编写) Web微框架(microframework,一个轻量级的 Web 应用框架)。

其中,WSGI工具箱采用Werkzeug(路由模块),它用Python编写的遵守WSGI协议的一个包;
模块引擎使用Jinja2。这两者是Flask框架的核心
PS:
a. Web服务器网关接口(WSGIWeb Server Gateway Interface)已被采纳为Python Web应用程序开发的标准。 WSGI是Web服务器和Web应用程序之间通用接口的规范;
b. Werkzeug是一个WSGI工具包(不是一个web服务器,也不是一个web框架),作为一个Web 框架的底层库,它实现(封装)了请求Request、响应对象(Response)和其他实用程序功能。 这可以在其上构建Web框架。 Flask框架使用Werkzeug作为其一个基础模块之一;
注意:Werkzeug对python3的支持并不好,所以如果使用Flask框架推荐使用python2。不知道截止现在(2018-08-01)改进了没有。
c. Jinja2是Python的流行模板引擎。网页模板系统模板特定的数据源结合起来呈现动态网页
Jinja2是Python世界的一款高人气template engine,是许多开源Web框架的选择,包括Flask这样的明星级项目。(据说:选择 Jinja 作为名字是因为 Jinja 是日本寺庙的名称,并且 temple 和 template的发音类似)

Flask其本身相当于一个内核,其他几乎所有功能都要用到第三方扩展来实现,如:用Flask-extension加入ORM、窗体验证工具、文件上传、身份验证等功能;用Flask-Mail实现邮件扩展、Flask-Login实现用户认证。

2.Flask没有默认使用的数据库,可选择MySQL,也可选择NoSQL。

3.Flask还是一个MVC框架。

再次,见识一下牛逼的作者:Armin ronacher
这里写图片描述
Flask Web框架的原始创建者。现在各处去演讲,羡慕。
1989年生,80后程序员。说是90后也不为过,哈哈。牛逼,我顿时流下没技术的泪。据说毕业于Mines Paris Tech,一所法国顶尖的精英工程师学校。
个人网站Twitterwiki领英

最后,选择一个适合你自己的Web框架。
目前Python主流Web框架有Django和Flask。比较:

  1. Django是一个较重量级框架,是一个大而全的 Web 系统,即几乎所有功能都帮助开发者写好了,有时如果只是想做一个简单网站,并不需要太多功能,这时使用Django,就不合适了,因为在部署网站时会导致很多不必要的功能也部署了进来。
  2. Flask是一个轻量级框架,只是实现一些核心功能,旨在保持应用程序的核心简单且可扩展。但是实现的功能并没有Django那么多,这样可自由发挥、DIY、自行组装啊。在Flask的基础上,如果想实现更多的功能,可以很方便地支持扩展以加入。

很多时候,后者就足够应付 80%的业务,前者则有种杀鸡用牛刀的节奏。而Flask也可以编写大型项目,可能有些人会觉得Django 太臃肿了,Flask 的组织方式比较清新。

其他用于web开发的Python框架:Tornado、CubicWeb、Web2py、web.py等。当然你也可以不用框架,自己写,哈哈!

学习参考文档:提供如此多的文档,是为了更好地学习。避免各种情况的发生(如网站打不开了等)
0、 The flask mega-tutorial 作者(miguelgrinberg)博客,也是本Flask超级教程的正宗来源;
1、Flask官方文档:1.0.2版本。(截止写本文时间2018-08-01);
2、Flask在线【中文】文档:1.0版本(稳定);
3、pypi Flask 英文文档:1.0.2版本;
4、作者源码GitHub
5、The flask mega-tutorial在线中文教程:1.1版本。

如需转载请注明出处。

猜你喜欢

转载自blog.csdn.net/weixin_38256474/article/details/81332147