Python
Frameworks
for the Web, ML & Testing
Arvind Padmanabhan
Web Frameworks
- Bottle
- CherryPy
- Django
- Falcon
- Flask
- Pylons
- Pyramid
- Tornado
- TurboGears
- web.py
- web2py
Characteristics
Python 3 support & PEP8 compliant
Can interface with a WSGI app server
MVC or equivalent pattern
ORM (Object Relational Mapping)
Flexible URL routing & templating
Authentication & access control
Security framework
Form validation
AJAX support
Caching support
Internationalization
Session management
Admin panel & CRUD
Testing framework
Good documentation
Ease of deployment
Can be customized & extended
Open license
Active community and updates
"Batteries included"
"Out-of-the-box-approach"
"Full-stack"
"Bare bones"
"Add-as-you-use-approach"
"Non-full-stack"
Flask
Bottle
CherryPy
Django
web2py
Pyramid
TurboGears
PEP8 & Complexity
Performance
WSGI Servers
- Green Unicorn
- uWSGI
- Apache mod_wsgi
- CherryPy
- Google App Engine
- Azure App Service
- Any PaaS ...
Some WSGI Servers:
http://wsgi.readthedocs.io/en/latest/servers.html
https://www.fullstackpython.com/platform-as-a-service.html
DB API
- PEP 249
- Portable code
- Flexibility to use any DB
- Easily understood code
Article Pages For Devopedia
- Python web frameworks
- Python template engines
- Python ORM
- WSGI
- Django
- Flask
- Pyramid
For Further Study
1. https://jeffknupp.com/blog/2014/03/03/what-is-a-web-framework/
2. https://www.fullstackpython.com/web-frameworks.html
3. https://wiki.python.org/moin/WebFrameworks
4. http://klen.github.io/py-frameworks-bench/
5. https://www.linkedin.com/pulse/best-10-python-frameworks-web-development-elyn-z-6059523132912394240
6. http://steelkiwi.com/blog/best-python-web-frameworks-to-learn/
7. http://insights.dice.com/2016/11/22/5-top-python-web-frameworks-2017/
8. https://www.airpair.com/python/posts/django-flask-pyramid
9. https://djangodeployment.com/2017/01/02/which-wsgi-server-should-i-use/
10. http://codecondo.com/14-minimal-web-frameworks-for-python/
11. http://www.bestwebframeworks.com/compare-web-frameworks/python/
12. https://en.wikipedia.org/wiki/Comparison_of_web_frameworks#Python_2
13. https://www.fullstackpython.com/template-engines.html
DL/ML Frameworks
Deep Learning
Apache Singa, Brainstorm, Caffe, Chainer, CNTK, Keras, Lasagne, mxnet, Neon, Paddle, PyTorch, TensorFlow, Theano, Veles
General
Amazon Machine Learning, Apache MLlib, Apache SystemML, Azure ML Studio, DMTK, Google Cloud Machine Learning, NumPy, Pandas, Pattern, Scikit-learn
No Silver Bullet
Source: https://www.slideshare.net/AIFrontiers/yangqing-jia-towards-better-dl-frameworks
Characteristics
Multi-GPU & Multi-node support
OpenMP & OpenCL support
CUDA support
Modelling capability: CNN, RNN, RBM ...
Interfaces well
Licensing
Modular & extensible
Good documentation
Community support
Active maintenance
Performance
Language bindings
Top ML Frameworks
Performance
Performance
Article Pages For Devopedia
- Python ML frameworks
- TensorFlow
- Theano
- Cloud ML
- SWIG
For Further Study
1. https://deeplearning4j.org/compare-dl4j-torch7-pylearn
2. https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software
3. https://elitedatascience.com/python-deep-learning-libraries
4. http://www.pyimagesearch.com/2016/06/27/my-top-9-favorite-python-deep-learning-libraries/
5. http://www.infoworld.com/article/3026262/data-science/13-frameworks-for-mastering-machine-learning.html
6. http://www.kdnuggets.com/2017/02/python-deep-learning-frameworks-overview.html
7. http://www.kdnuggets.com/2016/04/top-15-frameworks-machine-learning-experts.html
Testing
Frameworks
doctest, Hypothesis, nose, pytest, testtools, unittest, unittest.mock, zope.testing
RedwoodHQ, Robot Framework, Katalon Studio, Selenium, TestComplete, UFT
RedwoodHQ, Robot Framework, UFT
pytest-cov, python-coveralls, coverage
Unit Testing
Web Testing
Coverage
Acceptance
Testing
Approaches to Testing
Module Based
Library Based
Data Driven
Keyword Driven
Behaviour Driven
Hybrid
Characteristics
Python 3 support & PEP8 compliant
Mock fixtures
Reporting summary, details, duration, logs
Descriptive reporting for failures
Test discovery
Skip tests or conditional execution
Dependency & order of execution
Web/mobile apps: record & replay
Testing approach
Setup and teardown at various levels
Tests are reusable, maintainable, stable
Parameterized/fuzzy testing
Parallel execution
Includes or integrates with coverage tools
Easy to debug
Good documentation
Can be customized & extended
Open license
Active community and updates
Article Pages For Devopedia
- Python-based test frameworks
- Testing approaches
- Selenium
- Robot Framework
- Katalon Studio
For Further Study
1. https://wiki.python.org/moin/PythonTestingToolsTaxonomy
2. https://www.toptal.com/python/an-introduction-to-mocking-in-python
3. http://tjelvarolsson.com/blog/four-tools-for-testing-your-python-code/
4. https://www.slant.co/topics/2621/~python-unit-testing-frameworks
5. https://techbeacon.com/6-top-open-source-testing-automation-frameworks-how-choose
6. https://www.ibm.com/developerworks/aix/library/au-python_test/
7. https://www.katalon.com/resources-center/blog/comparison-automated-testing-tools/
8. http://www.guru99.com/quick-test-professional-qtp-tutorial-34.html
9. http://www.softwaretestinghelp.com/test-automation-frameworks-selenium-tutorial-20/
Python Frameworks
By Arvind Padmanabhan
Python Frameworks
Frameworks in Python for making web apps, for Machine Learning, or automated testing.
- 1,458