top | item 1491135

Flask 0.5 Released - Python WSGI microframework

51 points| enduser | 15 years ago |pypi.python.org | reply

27 comments

order
[+] cgbystrom|15 years ago|reply
List of changes (from the mailing list)

What's new:

   * fixed a bug with subdomains that was caused by the inability to
     specify the server name.  The server name can now be set with the
     SERVER_NAME config key.  This key is now also used to set the
     session cookie cross-subdomain wide.
   * autoescaping is no longer active for all templates. Instead it is
     only active for .html, .htm, .xml and .xhtml.  Inside templates
     this behaviour can be changed with the autoescape tag.
   * refactored Flask internally. It now consists of more than a single
     file.
   * flask.send_file() now emits etags and has the ability to do
     conditional responses builtin.
   * (temporarily) dropped support for zipped applications.  This was a
     rarely used feature and led to some confusing behaviour.
   * added support for per-package template and static-file directories.
   * removed support for create_jinja_loader which is no longer used in
     0.5 due to the improved module support.
   * added a helper function to expose files from any directory.

Links:

     Online Documentation: http://flask.pocoo.org/docs/
     Downloadable PDF: http://flask.pocoo.org/docs/flask-docs.pdf
     Website: http://flask.pocoo.org/
     On Github: http://github.com/mitsuhiko/flask
     PyPI Record: http://pypi.python.org/pypi/Flask

http://flask.pocoo.org/mailinglist/archive/2010/7/6/ann-flas...
[+] cageface|15 years ago|reply
Of the python microframeworks I've seen this one looks the most appealing and polished.
[+] enduser|15 years ago|reply
It is also an interesting springboard to working directly with Werkzeug, around which Flask is a relatively thin wrapper. Werkzeug is a very featureful library with which one can rapidly create exactly the framework one needs for a given project. No magic, no ponies ;-)
[+] mhd|15 years ago|reply
How does it compare to Bottle?

(http://bottle.paws.de/)

[+] enduser|15 years ago|reply
Bottle uses one process-wide application object. Flask supports initializing multiple application objects (such as for testing the app with different configurations).

Flask is built on top of the feature-rich Werkzeug library, which can significantly reduce the amount of code you must write for more complex applications. It is straightforward to refactor Flask out of your code and use Werkzeug directly.

Flask has a growing community of contributors. See the extensions library: http://flask.pocoo.org/extensions/

In a nutshell, Bottle is suitable for very simple websites. Flask has what it takes to grow into a large site.

[+] joshu|15 years ago|reply
Isn't this the one that was written based on an april fool's joke?

i am finding choosing a python framework to be stressful.

[+] enduser|15 years ago|reply
Yes.

It is stressful.

Look for libraries that make working with WSGI as painless as possible. Working with WSGI directly allows you to write modular code that works together gracefully with other WSGI code. Pylons is really just an amalgamation of WSGI modules. Smart people can amalgamate their own modules.

Django was written before WSGI was an established standard. It has the advantages of being established, a relatively large pool of developers, and the admin interface. It has the disadvantage of dictating your project layout, not integrating well with other WSGI modules, and having a large degree of lock-in.

The best options are Flask (for a simple start), Pylons (for more obvious out of the box functionality), WebOb (for a simple and slightly too magical WSGI library), and Werkzeug (for a well-written library that dictates nothing).

[+] pbh|15 years ago|reply
My ill informed opinion: the WSGI specification (i.e., PEP 333) together with a decade or so of cross-pollination seems to have made most Python web frameworks more similar than different. You can opt for more out of the box functionality at the expense of less flexibility, but not much else. (The exceptions seem to be where the code is really old and/or asynchronous.) Django seems to be the BDFL blessed option.

Example: Everyone seems to think that Google copied "their" Python web framework in creating the "webapp" framework for App Engine. webpy, Django, ...

[+] enduser|15 years ago|reply
Major points of interest: Flask has been split into multiple files in a package, added support for per-module templates and static files.
[+] adamilardi|15 years ago|reply
What is a good use case for a microframework?
[+] enduser|15 years ago|reply
Being able to get off the ground quickly while still determining the structure of your project. Thinking like a system programmer rather than a plugin programmer / integrator. Using the libraries of your choice to implement your site in the best way for your requirements.
[+] jamongkad|15 years ago|reply
How does Flask compare with web.py?