This is a short list I have compiled a few months ago, FWIW: New kids on the block: - Starlette https://www.starlette.io - Vibora https://vibora.io - Xweb https://github.com/gaojiuli/xweb - Storm https://github.com/jiajunhuang/storm - Responder http://python-responder.org - Quart https://pgjones.gitlab.io/quart/ - Sanic https://sanic.readthedocs.io - Bocadillo https://bocadilloproject.github.io/ - Japronto https://gi…
Is there any python framework that optimizes for developer productivity?
A Beginner’s Introduction to Python Web Frameworks (2018)
51–60 of 168 posts
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#52Of these frameworks, Pyramid is the only one I know of that uses the concept of traversal. Traversal is an elegant way to tame big projects. Whenever I look at a web framework, I look for traversal and I'm always a little disappointed to see it's missing. Traversal means the framework treats each path segment in the URL as a possible branch in a tree of resources provided by the app. After completing traversal, the f…
http://docs.pylonsproject.org/projects/pyramid/en/latest/des...
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#53Of these frameworks, Pyramid is the only one I know of that uses the concept of traversal. Traversal is an elegant way to tame big projects. Whenever I look at a web framework, I look for traversal and I'm always a little disappointed to see it's missing. Traversal means the framework treats each path segment in the URL as a possible branch in a tree of resources provided by the app. After completing traversal, the f…
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#54Earlier quoted context omitted.
>Yes, even on Windows. This would require you to run your containers on Windows servers right? Not much reason to do that anymore. Instead should just containerize as part of deployment pipeline
Docker on Windows can run linux containers just the same as docker on linux.. it uses a virtualbox vm with linux and runs containers inside that
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#55Earlier quoted context omitted.
Docker on Windows can run linux containers just the same as docker on linux.. it uses a virtualbox vm with linux and runs containers inside that
This is not the case. It uses Hyper-V (which is multitudes faster in every benchmark I’ve seen and much more stable) https://docs.docker.com/machine/get-started/
I haven't used Docker with WSL2 yet, but in other uses I've found WSL2 extremely fast. As long as you stay within its vhd, file access is ext4-quick. And on my machine running the geekbench cli gave me almost identical results to a native linux install.
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#56Earlier quoted context omitted.
Is there any python framework that optimizes for developer productivity?
Flask is pretty good. Stays out of your way and does what a framework must, and has some extras for forms etc.. if you want to use them. Tornado is fun to use, but less resources and libraries.
So it has right level of abstraction making it between a library and framework and you can use it either as library or framework. The difference is "framwwork calls your code" and "your code calls library code". I like the second paradigm more.
In order to make job very easy to develop there are excellent libraries so I have used flask, sqlalchemy (direct no flasl-sqlalchemy), alembic, marshmallow, celery, machine learning libraries (sci-kit, tensorflow, keras) and few more.
For development use cherrypy to graft wsgi app and for production use gunicorn or uwsgi. Our team is extremely happy and our test coverage is 98% as we use code as libraries not asnframework, so it makes it easy to test rest API and celery task code.
Also when needed for performance (not often as most libraries are better tested and designed), did take away the library abstraction and write our own code.
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#57For such a comprehensive list, no mention of tornado?
That surprised me too. IMHO Tornado should be #3 after Django and Flask since AFAIK it has the best built-in support for writing hybrid HTTP/WebSocket servers in Python. I use Tornado to serve the WebSocket backend for https://www.slickdns.com/live/ . I've also used Django Channels to add WebSocket support to a Django app and found it very cumbersome compared to Tornado.
I'm curious if you care for their templates or not, though.
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#58Earlier quoted context omitted.
Same can be said for any system, regardless of the language. Unless you’re able to create an artifact like a single executable or a Jar but you still need to supervise those and keep them running.
Say what you want to about PHP, but when it comes to deployment it’s hard to beat.
Asyncio really makes a difference here. I also hate that PHP has to spin up with every single request. This is something I have never gotten used to (From my understanding, most Python web frameworks just give you a clear/fresh Request Object, which is so much better even with WSGI (unless you're using WSGI scripts) Much easier to maintain application state this way in my experience. PHP-FPM doesn't exactly solve this problem, I don't think).
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#59This is a short list I have compiled a few months ago, FWIW: New kids on the block: - Starlette https://www.starlette.io - Vibora https://vibora.io - Xweb https://github.com/gaojiuli/xweb - Storm https://github.com/jiajunhuang/storm - Responder http://python-responder.org - Quart https://pgjones.gitlab.io/quart/ - Sanic https://sanic.readthedocs.io - Bocadillo https://bocadilloproject.github.io/ - Japronto https://gi…
Where php ended up somewhat confusingly is the frameworks are now frameworks and components to make web programming easier (syfony/zend...), which seem to be driving drupal and wordpress development.
Re: A Beginner’s Introduction to Python Web Frameworks (2018)
#60It's pretty powerful. LinkPeek uses MongoDB for storage, and Mako for templates.
Remarkbox uses PostgreSQL with SQLAlchemy, and Jinja2 for templates.