Frameworks make life easier for developers. They automate a lot of things that could be painful sometimes.
In this article we will see the most common python frameworks that could be useful on your way to becoming a back-end developer.
Django is the most known python mvc framework and it has great community. As a framework, it provides you Model Layer, View Layer, Forms, Caching, Logging, Sending Emails. Pagination Serialization, Sessions, Data Validation and more. Django works with are PostgreSQL, MySQL, SQLite, and Oracle, but third-party drivers allow you to use others as well.
Advantages
Great community
Documentation
Easy to learn
Scalable
Disadvantages - Slow, when you compare with others.
Sanic has been created for fast HTTP responses via asynchronous request handling. Its built top on uvloop and it compatible with Python 3.5’s async/await functions.This enhances its speed, offering non-blocking capabilities.
In benchmart tests, Sanic was able to handle up to 60k Request/Per second.
Advantages
Fast
Asynchronous
Middleware Support
Good Documentation
Disadvantages
Sanic is kinda new, so you might google for most of the things.
Weppy is a full-stack python web framework designed with simplicity in mind. It comes with beatiful ORM integrated migrations, validation system, authentication system, form generator, simple routing and powerful templating system.
A new player on the field. Vibora was designed from scratch to be efficient.Vibora APIs were heavily inspired by the awesome Flask. Builtin features were also based on many famous libraries as jinja2, marshmallow, websockets by aaugustin, werkzeug and many others. Schemas validation, template engine, sessions and many more features were written from scratch to provide great performance along with an elegant async interface.
Advantages
Super Fast (can handle 150k requests per second)
Asynchronous
Good documentation
Disadvantages
Doesnt have ORM (or any persistance layer)
Not enough community
Due to using uvloop, no chance to develop under Windows (i dont think this is a disadvantage)
Tornado was used for friendfeed. Thanks to bret taylor to create this web framework and asynchronous networking library. It uses a non-blocking network I/O and if configured properly, it can handle 10,000+ concurrent connections. After facebook acquired friendfeed tornado continued being developed under facebook.
Advantages
User authentication
Real-time services
High-quality performance
Disadvantages
There is no ORM
Templates do not auto-escape
Conclusion
There are also Flask, Pyramid, Aiohttp. The point of this post is to choose correct needs based on project. If you want to create async application, Tornado seems correct choice. If you need performance then go with Vibora. If you want to get support very quickly then Django is your solution. There are, of course, differences all above frameworks. But, if you choosing language and framework is based on project. This reply from Adam D'Angelo (Founder of Quora) would be a good example.