Skip to content

Commit c820781

Browse files
committed
update to web
1 parent f12ff7d commit c820781

File tree

1 file changed

+31
-80
lines changed

1 file changed

+31
-80
lines changed

docs/scenarios/web.rst

Lines changed: 31 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ project as-is, or customized to fit your needs.
6161
There 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

6566
Flask
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

11692
Tornado
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

126100
Pyramid
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

143112
Web Servers
144113
:::::::::::
@@ -169,14 +138,16 @@ servers and provide top performance [3]_.
169138
Gunicorn
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,
196167
see `uWSGI magic
197168
variables <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.
235207
Heroku
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

247217
Heroku maintains `articles <https://devcenter.heroku.com/categories/python>`_
248218
on using Python with Heroku as well as `step-by-step instructions
249219
<https://devcenter.heroku.com/articles/getting-started-with-python>`_ on
250220
how 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

273224
Gondor
274225
~~~~~~

0 commit comments

Comments
 (0)