Flask

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Flask
File:Flask logo.svg
开发者Armin Ronacher
首次发布2010年4月1日 (2010-04-01)
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    编程语言Python
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      操作系统跨平台
      类型Web应用框架
      许可协议BSD
      网站flask.pocoo.org

      Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2模板引擎。Flask使用BSD授权。

      Flask被称为“微框架”,因为它使用简单的核心,用扩展增加其他功能。Flask没有默认使用的数据库、表单验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension[1]加入这些功能:ORM、表单验证工具、文件上传、各种开放式身份验证技术。

      采用Flask的知名网站包括领英Pinterest等。[2][3]

      历史[编辑]

      2004年,一群来自世界各地的Python热衷者组成了Pocoo。[4]Flask的作者是来自Pocoo的Armin Ronacher。本来只是作者的一个愚人节玩笑,不过后来大受欢迎,进而成为一个正式的项目。[5][6]

      当Ronacher和Georg Brandl在2004年开发一个用Python编写的布告板系统时,开发了Werkzeug和Jinja两个项目。[7]

      2016 年 4 月,Pocoo 团队解散,Flask 及相关库的开发移交给新成立的 Pallets 项目。[8][9]

      Flask在Python爱好者及开发者中很受欢迎。在2018年的一项面向Python开发者的调查中被评为最受欢迎的Web框架。[10]截至2020年10月,它在GitHub上的Python Web开发框架中排名第二,仅略低于Django。[11]

      构件[编辑]

      微框架Flask基于了Pocoo计划的Werkzeug和Jinja2。

      Werkzeug

      Werkzeug是给Python编程语言的实用工具库,是用于Web服务器网关接口(WSGI)应用的工具箱,并在BSD许可证下发行。Werkzeug可以为请求、响应和实用功能实现软件对象。它可被用于在其上建造定制的软件框架,并支持Python 2.7和3.5及以后版本[12][13]

      Jinja

      Jinja也是Ronacher创作,是给Python编程语言的模板引擎英语Web template system,并在BSD许可证下发行。类似于Django web框架,它在沙盒中处理模板。

      特色[编辑]

      • 内置开发用服务器和调试器
      • 集成的单元测试支持
      • RESTful请求分派
      • 使用Jinja2模板引擎
      • 支持安全cookie(客户端会话)
      • 100%的WSGI1.0兼容
      • 基于Unicode
      • 详细的文件、教学
      • Google App Engine兼容
      • 可用Extensions增加其他功能

      示例[编辑]

      Flask可以在python环境中使用pypi等python包管理工具安装[13][14],以下的程序为印出Hello World的网页程序:

      from flask import Flask
      app = Flask(__name__)
      
      @app.route("/")
      def hello():
          return "Hello World!"
      
      if __name__ == "__main__":
          app.run()
      

      运行上述代码后,使用网页浏览器访问http://127.0.0.1:5000,即可看到网页浏览器中显示了“Hello World!”。[15]

      参见[编辑]

      参考[编辑]

      1. ^ Flask-extension. [2012-02-09]. (原始内容存档于2018-05-17). 
      2. ^ What challenges has Pinterest encountered with Flask?. [2022-08-21]. (原始内容存档于2023-07-22). 
      3. ^ Rachel Sanders: Developing Flask Extensions - PyCon 2014. [2022-08-21]. (原始内容存档于2017-07-31). 
      4. ^ Pocoo Team. [2017-06-15]. (原始内容存档于2015-11-10). 
      5. ^ Ronacher, Armin. Opening the Flask (PDF). [September 30, 2011]. (原始内容存档 (PDF)于2012-03-30). 
      6. ^ Denied: the next generation python micro-web-framework (April Fools page). [September 30, 2011]. (原始内容存档于2011年9月4日). 
      7. ^ History. Pocoo Team. [2015-03-25]. (原始内容存档于2017-11-19). 
      8. ^ Ronacher, Armin. Hello Pallets Users. The Pallets Projects. 2016-04-01 [2021-05-08]. (原始内容存档于2022-07-04). 
      9. ^ Pocoo. www.pocoo.org. [2021-05-08]. (原始内容存档于2022-08-03). 
      10. ^ Python Developers Survey 2018. www.jetbrains.com. 2018-11-01 [2022-08-21]. (原始内容存档于2022-09-03). 
      11. ^ Python libraries by GitHub stars. Github. [2020-01-27]. (原始内容存档于2022-01-07). 
      12. ^ Ronacher, Armin. Werkzeug The Python WSGI Utility Library. palletsprojects.com. [27 May 2018]. (原始内容存档于2021-06-01). 
      13. ^ 13.0 13.1 Ronacher, Armin. Installation, Python Version. palletsprojects.com. [20 April 2020]. (原始内容存档于2021-05-11). 
      14. ^ Installation — Flask Documentation (3.1.x). flask.palletsprojects.com. [2025-10-06]. 
      15. ^ Quickstart — Flask Documentation (3.1.x). flask.palletsprojects.com. [2025-10-06]. 

      外部链接[编辑]

      • Module:Official_website第90行Lua错误:attempt to index field 'wikibase' (a nil value)