Flask
Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2模板引擎。Flask使用BSD授权。
![]() | |
开发者 | Armin Ronacher |
---|---|
首次发布 | 2010年4月1日 |
当前版本 |
|
源代码库 | |
编程语言 | Python |
操作系统 | 跨平台 |
类型 | Web应用框架 |
许可协议 | BSD |
网站 | flask |
Flask被称为“微框架”,因为它使用简单的内核,用扩展增加其他功能。Flask没有缺省使用的数据库、表单验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension[2]加入这些功能:ORM、表单验证工具、文件上传、各种开放式身份验证技术。
历史
2004年,一群来自世界各地的Python热衷者组成了Pocoo。[5]Flask的作者是来自Pocoo的Armin Ronacher。本来只是作者的一个愚人节玩笑,不过后来大受欢迎,进而成为一个正式的项目。[6][7]
当Ronacher和Georg Brandl在2004年开发一个用Python编写的布告板系统时,开发了Werkzeug和Jinja两个项目。[8]
2016 年 4 月,Pocoo 团队解散,Flask 及相关库的开发移交给新成立的 Pallets 项目。[9][10]
Flask在Python爱好者及开发者中很受欢迎。在2018年的一项面向Python开发者的调查中被评为最受欢迎的Web框架。[11]截至2020年10月,它在GitHub上的Python Web开发框架中排名第二,仅略低于Django。[12]
构件
微框架Flask基于了Pocoo计划的Werkzeug和Jinja2。
- Werkzeug
Werkzeug是给Python编程语言的实用工具库,是用于Web服务器网关接口(WSGI)应用的工具箱,并在BSD许可证下发行。Werkzeug可以为请求、响应和实用功能实现软件对象。它可被用于在其上建造定制的软件框架,并支持Python 2.7和3.5及以后版本[13][14]。
- Jinja
Jinja也是Ronacher创作,是给Python编程语言的模板引擎,并在BSD许可证下发行。类似于Django web框架,它在沙盒中处理模板。
特色
- 内置开发用服务器和调试器
- 集成的单元测试支持
- RESTful请求分派
- 使用Jinja2模板引擎
- 支持安全cookie(客户端会话)
- 100%的WSGI1.0兼容
- 基于Unicode
- 详细的文档、教学
- Google App Engine兼容
- 可用Extensions增加其他功能
范例
以下的程序为印出Hello World的网页程序:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
参见
参考
- . 2024年2月3日 [2024年2月19日].
- . [2012-02-09]. (原始内容存档于2018-05-17).
- . [2022-08-21]. (原始内容存档于2023-07-22).
- . [2022-08-21]. (原始内容存档于2017-07-31).
- . [2017-06-15]. (原始内容存档于2015-11-10).
- Ronacher, Armin. (PDF). [September 30, 2011]. (原始内容存档 (PDF)于2012-03-30).
- . [September 30, 2011]. (原始内容存档于2011年9月4日).
- . Pocoo Team. [2015-03-25]. (原始内容存档于2017-11-19).
- Ronacher, Armin. . The Pallets Projects. 2016-04-01 [2021-05-08]. (原始内容存档于2022-07-04).
- . www.pocoo.org. [2021-05-08]. (原始内容存档于2022-08-03).
- . www.jetbrains.com. 2018-11-01 [2022-08-21]. (原始内容存档于2022-09-03).
- . Github. [2020-01-27]. (原始内容存档于2022-01-07).
- Ronacher, Armin. . palletsprojects.com. [27 May 2018]. (原始内容存档于2021-06-01).
- Ronacher, Armin. . palletsprojects.com. [20 April 2020]. (原始内容存档于2021-05-11).