Flask (web framework)

From Wikipedia, the free encyclopedia
  (Redirected from Flask (programming))
Jump to navigation Jump to search
Flask
Flask logo.svg
Developer(s) Armin Ronacher
Initial release April 1, 2010; 8 years ago (2010-04-01)
Stable release
1.0.2 / May 2, 2018; 54 days ago (2018-05-02)[1][2]
Repository Edit this at Wikidata
Written in Python
Operating system Cross-platform
Type Web framework
License BSD
Website flask.pocoo.org

Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries.[3] It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions. However, Flask supports extensions that can add application features as if they were implemented in Flask itself. Extensions exist for object-relational mappers, form validation, upload handling, various open authentication technologies and several common framework related tools. Extensions are updated far more regularly than the core Flask program.[4]

Applications that use the Flask framework include Pinterest,[5] LinkedIn,[6] and the community web page for Flask itself.[7]

History[edit]

In 2004, Pocoo was formed as an international group of Python enthusiasts.[8] Flask was created by Armin Ronacher of Pocoo:

"It came out of an April Fool's joke but proved popular enough to make into a serious application in its own right."[9][10][11]

When Ronacher and Georg Brandl created[when?] a bulletin board system written in Python, the Pocoo projects Werkzeug and the Jinja2 were developed, too.[12]

Despite the lack of a major release, Flask has become extremely popular among Python enthusiasts. As of mid 2016, it was the most popular Python web development framework on GitHub.[13]

Components[edit]

The microframework Flask is based on the Pocoo projects Werkzeug and Jinja2.

Werkzeug

Werkzeug is a utility library for the Python programming language, in other words a toolkit for Web Server Gateway Interface (WSGI) applications, and is licensed under a BSD License. Werkzeug can realize software objects for request, response, and utility functions. It can be used to build a custom software framework on top of it and supports Python 2.6, 2.7 and 3.3.[14]

Jinja

Jinja is a template engine for the Python programming language and is licensed under a BSD License also by Ronacher. Similar to the Django web framework, furthermore it provides that templates are evaluated in a sandbox.

Features[edit]

  • Contains development server and debugger
  • Integrated support for unit testing
  • RESTful request dispatching
  • Uses Jinja2 templating
  • Support for secure cookies (client side sessions)
  • 100% WSGI 1.0 compliant
  • Unicode-based
  • Extensive documentation
  • Google App Engine compatibility
  • Extensions available to enhance features desired

Example[edit]

The following code shows a simple web application that prints "Hello World!":

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

See also[edit]

References[edit]

External links[edit]