Flask教程1-简介

Posted 冰岩编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask教程1-简介相关的知识,希望对你有一定的参考价值。

一、简介

Flask是使用Python编写的Web微框架(microframework),Flask仅保留了Web框架的核心,其他的功能都交给扩展实现,如果没有合适的扩展,大家甚至可以自己写。因此,Flask足够轻量,只用三五行代码就能编写出一个最简单的Web程序,但它并不简单。微微老师就曾经经轻看了它,现在看来,只是自己当时无知罢了。

因为Flask的简洁和灵活,越来越多的公司选择Flask作为Web框架,如国外Netflix(奈飞)、Reddit等,国内则有豆瓣、果壳等,这些已经说明Flask可以经受大型项目的挑战、能够适应各种需求。

Flask教程1-简介

Flask有两个主要依赖,一个是WSGI(Web Server Gateway Interface)工具箱--Werkzeug另一个是Jinja2 模板引擎。

关于WSGI的介绍,请看前文:


关于什么是模板引擎,Flask和Django都采用Jinja2来作为模版引擎。在Python中,什么是模版?就是在一个静态html加入一些类似变量的标签,然后引擎在渲染这个HTML时候会动态的把变量填入内容,生成一个最终的HTML。

什么是模版引擎?其实就是一种能解 析类似Python语言的标记语 言的解释器。 比如我们在HTML模版中输入一个 <p> {{ post.title }} </p> ,显然这不是真正的HTML语法。但是当Jinja2解释器读取到 {{ ...}} 后知道里面是一个变量,那么就把这个变量替换为真正的值,最后翻译出来就变成了 <p> 大标题 </p> 这样的HTML内容。
由此可见,Flask只保留了Web开发的核心功能,其他功能都由外部扩展来实现,如数据库集成,表单认证、文件上传等,如果没有合适扩展,大家可以自己动手开发,Flask不会替你做决定,也不会限制你的选择。总之,Flask可以变成任何大家想要的东西,一切由你做主!

二、诞生

愚人节笑话很少有成真的,毕竟那只是一时娱乐而已。但同样的话,对于开发者社区来说或许有例外。 Flask就是诞生于创始人Armin Ronacher 9年前的一个愚人节笑话。 目前,Flask在Github网站上已经至少获得4万多个Star,已经跻身主流Python Web开发框架之列,这或许可以说是开发者社区最成功的愚人节笑话。 根据Armin自己回忆,当时他注意到微框架开始流行,出现了很多类似web.py(Python)和camping(Ruby)的微框架。这些框架都没有外部的依赖包,而且只有一个文件,似乎特别受大家欢迎。所以他决定自己也开发一个这样的框架,娱乐一下。 因为目的只是作为愚人节笑话,所以他只是利用现有的技术,将Werkzeug、simplejson和Jinja2打包进了一个文件,并添加了一些胶水代码。 最终的产物就是一个名叫Denied的微框架。
为了让这个笑话更加可信、看上去更真实,他请人录制了一个视频,上线了一个网站,还找了几位知名Python开发者为这个框架背书。愚人节当天,Armin通过Twitter发布了Denied。 开发者社区对此的反应出乎意料。 Armin在4月3日总结此事时提到,视频三天内被下载了1万次,网站点击量超过5万。 而且转推数量远远超过之前自己的纪录。
开发者们对这个项目的极大兴趣,促使Armin最终决定重新造轮子(reinventing the wheel),2010年4月6日在Github上发布了Flask。

Armin后来解释了自己开发Flask的两大原因:

  • 灵活性更高,应用可能要求一些现有框架没有的东西

  • 可以自己掌握全局,快速解决遇到的问题

最终的框架使用起来非常简单。用Flask开发的“Hello World”应用只要下面几行代码就可以了:

from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'HelloWorld!'if __name__ == '__main__':    app.run()

运行结果如下:

点个在看吧~

以上是关于Flask教程1-简介的主要内容,如果未能解决你的问题,请参考以下文章

Flask简介——Flask教程

Flask 教程

Flask 入门教程:Jinja2模板用法

Flask 入门教程:Jinja2模板用法

Flask教程11模板

详细实战教程!部署Flask网站+域名访问+免费https证书