Python Frameworks Comparison

in #apistar6 years ago (edited)

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.

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


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/

Sort:  

Great work @bencagri ! So much information in a single post!

thanks :) i hope this article is useful for starting a project.

Congratulations @bencagri! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @bencagri! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

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!