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.
(html comment removed: more)
Django
Supports : Python 3 | Official Website | GitHub | PyPI
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.
- Too monolithic
- Everything is based on Django ORM
- Components get deployed together
Web2Py
Supports: Python 2 | Official Website | GitHub | PyPI
Web2py is a scalable open-source full-stack Python framework. However, you should know before reading further that Web2py does not support Python 3.
Advantages
- Web Based IDE
- Database Abstraction Layer
- Forms and Validation
Disadvantages
- Regular Python in View
- Not enough community
- Not well documentation
Sanic
Supports: Python 3 | Official Website | GitHub | PyPI
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
Supports: Python 3 | Official Website | GitHub | PyPI
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.
Advatages
- Nice choice if you want organized
- Easy to learn
- Fast development (just focus on product)
- Good documentation
Disadvantages
- Not enough community
- Not much contributors to develop
Vibora
Supports: Python 3 | Official Website | GitHub | PyPI
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
Supports: Python 3 | Official Website | GitHub | PyPI
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.
Have a nice coding day.
Posted from my blog with SteemPress : http://bencagri.com/blog/python-frameworks-comparison/
Great work @bencagri ! So much information in a single post!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
thanks :) i hope this article is useful for starting a project.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @bencagri! You received a personal award!
Happy Birthday! - You are on the Steem blockchain for 1 year!
Click here to view your Board
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @bencagri! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit