Python Web Frameworks – Development Server
pyrseas.wordpress.com
pyrseas.wordpress.com
python -m quixote.server.simple_server
python -m quixote.server.medusa_server
python -m quixote.server.twisted_server
python -m quixote.server.fastcgi_server
python -m quixote.server.scgi_server
simple_server uses BaseHTTPServer and is thus single-threaded and blocking but works fine for development. I like FastCGI or SCGI with a dedicated webserver as a frontend for production.For flask it's...
app.run(debug=True)
Or having `DEBUG = True` somewhere in your config object/file.With Quixote I have a Tkinter GUI that shows me the debug and access logs and lets me restart the DB or app server with a single click. When I'm ready to test I just right-click on that window and the app server restarts.
However this setup can lead to socket lockup (see picked answer) -- http://stackoverflow.com/questions/5693741/whats-difference-...
For high volume apps, it often makes sense to run multiple instances of the app behind a reverse proxy. That's the only way to make full use the CPU when running Python.
What is "socket lockup"? The word "lockup" is nowhere to be found on the page you references.
https://github.com/ashchristopher/django-concurrent-server
Really nice module.
It doesn't automatically reload on file changes, but PyQuitter[1] can provide that functionality, so it's not a huge issue.
Django is good for getting a site/system up and running fast, so long as I'm not too concerned with specific implementation details (the users 'just work', etc.)
Pyramid is good for a longer-term/more custom system where being easily able to modify (or choose) particular implementation details is important to me. It's not as fast to get a full-featured site off the ground, but the pieces glue together in a way that I really like.
I think that there was a well known post many years ago about "glue" and "full stack" frameworks, comparing pylons (now pyramid) as the former, and django as the latter.
#EDIT: Oh, and I used to do a bit of work with Zope/Plone, but that's pretty much what you'd consider to be the 'enterprisey' setup for python, and I wouldn't recommend it for most uses.