create account

Python Frameworks Comparison by bencagri

View this thread on: hive.blogpeakd.comecency.com
· @bencagri · (edited)
$1.94
Python Frameworks Comparison
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.

<!--more-->
<h2>Django</h2>
Supports : Python 3 | <a href="https://www.djangoproject.com/" target="_blank" rel="noopener">Official Website</a> | <a href="https://github.com/django" target="_blank" rel="noopener">GitHub</a> | <a href="https://pypi.python.org/pypi/Django/1.11.1" target="_blank" rel="noopener">PyPI</a>
<h4><a href="http://bencagri.com/blog/media/django-hosting.png"><center><img class="wp-image-6726 aligncenter" src="http://bencagri.com/blog/media/django-hosting.png" alt="" width="316" height="174" /></center><br/></a></h4>
<h4></h4>
<h4></h4>
<h4></h4>
<h4></h4>
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.

<strong>Advantages</strong>
- Great community
- Documentation
- Easy to learn
- Scalable

<strong>Disadvantages
</strong>- Slow, when you compare with others.
- Too monolithic
- Everything is based on Django ORM
- Components get deployed together
<h2>Web2Py</h2>
Supports: Python 2 | <a href="http://www.web2py.com/" target="_blank" rel="noopener">Official Website</a><a href="http://bencagri.com/blog/media/logo_lb.png"> | </a><a href="https://github.com/web2py" target="_blank" rel="noopener">GitHub</a><a href="http://bencagri.com/blog/media/logo_lb.png"> | </a><a href="https://pypi.python.org/pypi/web2py" target="_blank" rel="noopener">PyPI</a><a href="http://bencagri.com/blog/media/logo_lb.png"><center><img class="wp-image-6729 aligncenter" src="http://bencagri.com/blog/media/logo_lb.png" alt="" width="615" height="125" /></center><br/></a>

Web2py is a scalable open-source full-stack Python framework. However, you should know before reading further that Web2py <em>does not</em> support Python 3.

<strong>Advantages</strong>

- Web Based IDE
- Database Abstraction Layer
- Forms and Validation

<strong>Disadvantages</strong>

- Regular Python in View
- Not enough community
- Not well documentation
<h2>Sanic</h2>
Supports: Python 3 | <a href="http://sanic.readthedocs.io/en/latest/" target="_blank" rel="noopener">Official Website</a> | <a href="https://github.com/channelcat/sanic" target="_blank" rel="noopener">GitHub</a> | <a href="https://pypi.python.org/pypi/Sanic" target="_blank" rel="noopener">PyPI</a>

<a href="http://bencagri.com/blog/media/sanic.png"><center><img class=" wp-image-6734 aligncenter" src="http://bencagri.com/blog/media/sanic.png" alt="" width="476" height="209" /></center><br/></a>

Sanic has been created for fast HTTP responses via asynchronous request handling. Its built top on <a href="https://github.com/MagicStack/uvloop" target="_blank" rel="noopener">uvloop</a> 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.

<strong>Advantages</strong>

- Fast
- Asynchronous
- Middleware Support
- Good Documentation

<strong>Disadvantages</strong>

- Sanic is kinda new, so you might google for most of the things.

&nbsp;
<h2>Weppy</h2>
Supports: Python 3 | <a href="http://weppy.org/" target="_blank" rel="noopener">Official Website</a> | <a href="https://github.com/gi0baro/weppy" target="_blank" rel="noopener">GitHub</a> | <a href="https://pypi.org/project/weppy/" target="_blank" rel="noopener">PyPI</a><a href="http://bencagri.com/blog/media/logo-big.png"><center><img class=" wp-image-6738 aligncenter" src="http://bencagri.com/blog/media/logo-big.png" alt="" width="359" height="202" /></center><br/></a>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.

<strong>Advatages</strong>

- Nice choice if you want organized
- Easy to learn
- Fast development (just focus on product)
- Good documentation

<strong>Disadvantages</strong>

- Not enough community
- Not much contributors to develop

&nbsp;
<h2>Vibora</h2>
Supports: Python 3 | <a href="https://vibora.io/" target="_blank" rel="noopener">Official Website</a> | <a href="https://github.com/vibora-io/vibora" target="_blank" rel="noopener">GitHub</a> | <a href="https://pypi.org/project/vibora/" target="_blank" rel="noopener">PyPI</a>

<a href="http://bencagri.com/blog/media/vidora.jpg"><center><img class=" wp-image-6740 aligncenter" src="http://bencagri.com/blog/media/vidora.jpg" alt="" width="399" height="122" /></center><br/></a>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.

<strong>Advantages</strong>

- Super Fast (can handle 150k requests per second)
- Asynchronous
- Good documentation

<strong>Disadvantages</strong>

- 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)

&nbsp;
<h2>Tornado</h2>
Supports: Python 3 | <a href="http://www.tornadoweb.org/en/latest/" target="_blank" rel="noopener">Official Website</a> | <a href="https://github.com/tornadoweb/tornado" target="_blank" rel="noopener">GitHub</a> | <a href="https://pypi.python.org/pypi/tornado" target="_blank" rel="noopener">PyPI</a>

<a href="http://bencagri.com/blog/media/top_10_python_frameworks_to_learn_in_2018_image_8.png"><center><img class=" wp-image-6737 aligncenter" src="http://bencagri.com/blog/media/top_10_python_frameworks_to_learn_in_2018_image_8.png" alt="" width="625" height="219" /></center><br/></a>

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 <a href="https://techcrunch.com/2009/08/10/facebook-acquires-friendfeed/" target="_blank" rel="noopener">facebook acquired friendfeed</a> tornado continued being developed under facebook.

<strong>Advantages</strong>

- User authentication
- Real-time services
- High-quality performance

<strong>Disadvantages
</strong>

- There is no ORM
- Templates do not auto-escape

&nbsp;
<h1>Conclusion</h1>
There are alsoย  <a href="http://flask.pocoo.org/" target="_blank" rel="noopener">Flask</a>, <a href="https://trypyramid.com/" target="_blank" rel="noopener">Pyramid</a>, <a href="https://github.com/aio-libs/aiohttp" target="_blank" rel="noopener">Aiohttp.</a>ย  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. <a href="https://www.quora.com/Why-did-Quora-choose-Python-for-its-development-What-technological-challenges-did-the-founders-face-before-they-decided-to-go-with-Python-rather-than-PHP/answer/Adam-DAngelo?share=1&amp;srid=iQJO" target="_blank" rel="noopener">This reply</a> from Adam D'Angelo (Founder of Quora) would be a good example.

Have a nice coding day.<br /><center><hr/><em>Posted from my blog with <a href='https://wordpress.org/plugins/steempress/'>SteemPress</a> : http://bencagri.com/blog/python-frameworks-comparison/</em><hr/></center>
๐Ÿ‘  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 58 others
๐Ÿ‘Ž  ,
properties (23)
authorbencagri
permlinkpythonframeworkscomparison-wfwkki3ff9
categoryapistar
json_metadata{"community":"steempress","app":"steemit/0.1","image":["http://bencagri.com/blog/media/django-hosting.png","http://bencagri.com/blog/media/logo_lb.png","http://bencagri.com/blog/media/sanic.png","http://bencagri.com/blog/media/logo-big.png","http://bencagri.com/blog/media/vidora.jpg","http://bencagri.com/blog/media/top_10_python_frameworks_to_learn_in_2018_image_8.png"],"tags":["utopian-io","analysis","steempress","blog","apistar"],"original_link":"http://bencagri.com/blog/python-frameworks-comparison/","links":["https://www.djangoproject.com/","https://github.com/django","https://pypi.python.org/pypi/Django/1.11.1","http://bencagri.com/blog/media/django-hosting.png","http://www.web2py.com/","http://bencagri.com/blog/media/logo_lb.png","https://github.com/web2py","https://pypi.python.org/pypi/web2py","http://sanic.readthedocs.io/en/latest/","https://github.com/channelcat/sanic","https://pypi.python.org/pypi/Sanic","http://bencagri.com/blog/media/sanic.png","https://github.com/MagicStack/uvloop","http://weppy.org/","https://github.com/gi0baro/weppy","https://pypi.org/project/weppy/","http://bencagri.com/blog/media/logo-big.png","https://vibora.io/","https://github.com/vibora-io/vibora","https://pypi.org/project/vibora/","http://bencagri.com/blog/media/vidora.jpg","http://www.tornadoweb.org/en/latest/","https://github.com/tornadoweb/tornado","https://pypi.python.org/pypi/tornado","http://bencagri.com/blog/media/top_10_python_frameworks_to_learn_in_2018_image_8.png","https://techcrunch.com/2009/08/10/facebook-acquires-friendfeed/","http://flask.pocoo.org/","https://trypyramid.com/","https://github.com/aio-libs/aiohttp","https://www.quora.com/Why-did-Quora-choose-Python-for-its-development-What-technological-challenges-did-the-founders-face-before-they-decided-to-go-with-Python-rather-than-PHP/answer/Adam-DAngelo?share=1&srid=iQJO","https://wordpress.org/plugins/steempress/","http://bencagri.com/blog/python-frameworks-comparison/"],"format":"markdown"}
created2018-07-11 10:24:48
last_update2018-07-11 10:29:57
depth0
children4
last_payout2018-07-18 10:24:48
cashout_time1969-12-31 23:59:59
total_payout_value1.505 HBD
curator_payout_value0.435 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length8,243
author_reputation2,013,507,940,383
root_title"Python Frameworks Comparison"
beneficiaries
0.
accountsteempress-io
weight1,500
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id64,269,194
net_rshares1,043,702,320,657
author_curate_reward""
vote details (124)
@prasadyelwande ·
Great work  @bencagri ! So much information in a single post!
properties (22)
authorprasadyelwande
permlinkre-bencagri-pythonframeworkscomparison-wfwkki3ff9-20180711t113437761z
categoryapistar
json_metadata{"tags":["apistar"],"users":["bencagri"],"app":"steemit/0.1"}
created2018-07-11 11:34:42
last_update2018-07-11 11:34:42
depth1
children1
last_payout2018-07-18 11:34:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length61
author_reputation92,623,092,439
root_title"Python Frameworks Comparison"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id64,275,188
net_rshares0
@bencagri ·
thanks :) i hope this article is useful for starting a project.
๐Ÿ‘  
properties (23)
authorbencagri
permlinkre-prasadyelwande-re-bencagri-pythonframeworkscomparison-wfwkki3ff9-20180711t114431489z
categoryapistar
json_metadata{"tags":["apistar"],"app":"steemit/0.1"}
created2018-07-11 11:44:33
last_update2018-07-11 11:44:33
depth2
children0
last_payout2018-07-18 11:44:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length63
author_reputation2,013,507,940,383
root_title"Python Frameworks Comparison"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id64,276,139
net_rshares207,144,364
author_curate_reward""
vote details (1)
@steemitboard ·
Congratulations @bencagri! You received a personal award!

<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@bencagri/birthday1.png</td><td><p>Happy Birthday! - You are on the Steem blockchain for 1 year!<p></td></tr></table>

<sub>_[Click here to view your Board](https://steemitboard.com/@bencagri)_</sub>


> Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!
properties (22)
authorsteemitboard
permlinksteemitboard-notify-bencagri-20190119t155535000z
categoryapistar
json_metadata{"image":["https://steemitboard.com/img/notify.png"]}
created2019-01-19 15:55:36
last_update2019-01-19 15:55:36
depth1
children0
last_payout2019-01-26 15:55:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length543
author_reputation38,975,615,169,260
root_title"Python Frameworks Comparison"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id78,619,819
net_rshares0
@steemitboard ·
Congratulations @bencagri! You received a personal award!

<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@bencagri/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>

<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@bencagri) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=bencagri)_</sub>


###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
properties (22)
authorsteemitboard
permlinksteemitboard-notify-bencagri-20200119t155926000z
categoryapistar
json_metadata{"image":["https://steemitboard.com/img/notify.png"]}
created2020-01-19 15:59:27
last_update2020-01-19 15:59:27
depth1
children0
last_payout2020-01-26 15:59:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length620
author_reputation38,975,615,169,260
root_title"Python Frameworks Comparison"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id94,547,507
net_rshares0