@@ -61,6 +61,7 @@ project as-is, or customized to fit your needs.
6161There are annual Django conferences `in the United States
6262<http://djangocon.us> `_ and `in Europe <http://djangocon.eu >`_.
6363
64+ The majority of new Python web applications today are built with Django.
6465
6566Flask
6667-----
@@ -84,61 +85,29 @@ For those that do, there are many
8485 `Extensions <http://flask.pocoo.org/extensions/ >`_ available that may
8586 suit your needs. Or, you can easily use any library you want yourself!
8687
87-
88- Web.py
89- ------
90- `Web.py <http://webpy.org/ >`_ is a web framework for Python that is as
91- simple as it is powerful. You won't find wizards or boilerplate websites
92- in Web.py and will have to build from scratch. Web.py provides no administration
93- utility. Web.py is the brainchild of Aaron Swartz, who developed it while working
94- on Reddit.com.
95-
96-
97- Web2py
98- ------
99- A full stack web framework and platform focused in the ease of use. It focuses on
100- rapid development, favors convention over configuration approach and follows a
101- model–view–controller (MVC) architectural pattern.
102-
103-
104- Werkzeug
105- --------
106-
107- `Werkzeug <http://werkzeug.pocoo.org/ >`_ is not actually a real framework, but
108- rather a very powerful set of tools for building web applications. It provides
109- URL routing utilities, request and response objects and a basic development
110- server. It is mostly used where users need more flexibility for their
111- application than is commonly found in other web frameworks.
112-
113- Support can be found on its `mailing list <http://werkzeug.pocoo.org/community/#mailinglist >`_.
88+ Flask is default choice for any Python web application that isn't a good
89+ fit for Django.
11490
11591
11692Tornado
11793--------
118- `Tornado <http://www.tornadoweb.org/ >`_ is a scalable, non-blocking web server
119- and web application framework with a relative simple usage. Tornado is known
120- for its high performance. It was initially developed for
121- `friendfeed <http://friendfeed.com/ >`_ , a real time chat and blog system.
122-
123- In the Jinja2 template engine example it is used to serve the rendered pages.
12494
95+ `Tornado <http://www.tornadoweb.org/ >`_ is an asyncronous web framework
96+ for Python that has its own event loop. This allows it to natively support
97+ WebSockets, for example. Well-written Tornado applications are known to
98+ have excellent performance charecteristics.
12599
126100Pyramid
127101--------
128102
129- `Pyramid <http://www.pylonsproject.org/ >`_ lies somewhere between a big
130- framework like Django and the microframeworks: It comes with a lot of libraries
131- and functionality and can thus not be considered lightweight. On the other
132- hand, it does not provide all the functionality Django does. Instead Pyramid
133- brings basic support for most regular tasks and provides a great deal of
134- extensibility. Additionally, Pyramid has a huge focus on complete
135- `documentation <http://docs.pylonsproject.org/en/latest/docs/pyramid.html >`__.
136- As a little extra it comes with the Werkzeug Debugger which allows you to debug
137- a running web application in the browser.
138-
139- **Support ** can also be found in the
140- `documentation <http://docs.pylonsproject.org/en/latest/index.html#support-desc >`__.
103+ `Pyramid <http://www.pylonsproject.org/ >`_ is a lot like Django, except
104+ with a heavier focus on modularity. It comes with a smaller number of
105+ libraries ("batteries") built-in, and encourages users to extend its
106+ base functionality.
141107
108+ Pyramid does not have a large user base, ulike Django and Flask (or even
109+ Tornado). It's a capable framework, but not a very popular choice for
110+ new Python web applications today.
142111
143112Web Servers
144113:::::::::::
@@ -169,14 +138,16 @@ servers and provide top performance [3]_.
169138Gunicorn
170139--------
171140
172- `Gunicorn <http://gunicorn.org/ >`_ (Green Unicorn) is a WSGI server used
173- to serve Python applications. It is a Python interpretation of the Ruby
174- `Unicorn <http://unicorn.bogomips.org/ >`_ server. Unicorn is designed to be
175- lightweight, easy to use, and uses many UNIX idioms. Gunicorn is not designed
176- to face the internet -- it was designed to run behind Nginx which buffers
177- slow requests and takes care of other important considerations. A sample
178- setup for Nginx + Gunicorn can be found in the
179- `Gunicorn help <http://gunicorn.org/index.html#deployment >`_.
141+ `Gunicorn <http://gunicorn.org/ >`_ (Green Unicorn) is a pure-python WSGI
142+ server used to serve Python applications. Unlike other Python web servers,
143+ it has a thoughtful user-interface, and is extremely easy to use and
144+ configure.
145+
146+ Gunicorn has sane and reasonable defaults for configurations. However, some
147+ other servers, like uWSGI, are tremendously more customizable, and therefore,
148+ are much more difficult to effectively user.
149+
150+ Gunicorn is the default choice for new Python web applications today.
180151
181152.. _uwsgi-ref :
182153
@@ -196,6 +167,7 @@ Python, passing environment variables and further tuning. For full details,
196167see `uWSGI magic
197168variables <https://uwsgi-docs.readthedocs.org/en/latest/Vars.html> `_.
198169
170+ I do not recommend usign uWSGI unless you think you need to.
199171
200172.. _server-best-practices-ref :
201173
@@ -235,40 +207,19 @@ logging, scheduled and background tasks, billing and payment, etc.
235207Heroku
236208~~~~~~
237209
238- `Heroku <http://www.heroku.com/ >`_'s
239- `Cedar stack <http://devcenter.heroku.com/articles/cedar >`_ offers first class
240- support for Python 2.7 applications.
210+ `Heroku <http://www.heroku.com/python >`_ offers first-class support for
211+ Python 2.7–3.5 applications.
241212
242- Heroku allows you to run as many Python web applications as you like, 24/7 and
243- free of charge. Heroku is best described as a horizontal scaling platform. They
244- start to charge you once you "scale" your application to run on more than one
245- Dyno (abstracted servers) at a time.
213+ Heroku allows you to run Python web applications free of charge. It is best
214+ described as a horizontal scaling platform. They start to charge you once you
215+ "scale" your application to run in production. Hobby pricing is available.
246216
247217Heroku maintains `articles <https://devcenter.heroku.com/categories/python >`_
248218on using Python with Heroku as well as `step-by-step instructions
249219<https://devcenter.heroku.com/articles/getting-started-with-python> `_ on
250220how to set up your first application.
251221
252-
253- DotCloud
254- ~~~~~~~~
255-
256- `DotCloud <http://www.dotcloud.com/ >`_ supports WSGI applications and
257- background/worker tasks natively on their platform. Web applications run
258- Python version 2.6, use :ref: `nginx <nginx-ref >` and :ref: `uWSGI
259- <uwsgi-ref>`, and allow custom configuration of both for advanced users.
260-
261- DotCloud uses a custom command-line API client which can work with
262- applications managed in git repositories or any other version control
263- system.
264-
265- DotCloud has a free plan with limited database size, and without extra
266- services (caching…).
267-
268- See the `DotCloud documentation on Python
269- <http://docs.dotcloud.com/services/python/> `_ for more information and help
270- getting started.
271-
222+ Heroku is the recommended PaaS for deploying Python web applications today.
272223
273224Gondor
274225~~~~~~
0 commit comments