6 Python Frameworks You Need To Know
Python is an excellent programming language to learn. It’s relatively straightforward, simple, and object-orientated language, and it’s one of the most popular in active use today. Many people, whether they are full-time coders or simply benefit from having some coding understanding, turn to Python as a default language.
One of the things that makes Python so compelling is the frameworks. One of Python’s weaknesses is in server connectivity, where it is severely limited, so people instead use frameworks – sets of pre-created packages and modules – to bypass the limitations and easily build Web applications and services.
Understanding the various frameworks is useful if you are studying programming, or in professional fields like financial planning, where being able to whip up applications is actually an enormously useful skill for both your business and customers.
NOTE: It is important to distinguish between frameworks and some of the other ways you’ll be interacting with Python. PyCharm, for example, is often mistaken for being a framework, but it is instead an integrated development environment, which inherits all IntelliJ IDEA’s Web-based functionality (including JavaScript support). Meanwhile, Anaconda is a Python and R programming distribution system (and therefore not a framework), and NumPy is not a framework but rather a library for the Python programming language.
Understanding these differences and how they interact with – and stand separate from – one another is important in developing a full understanding of Python.
With that in context, here are some of the major Python frameworks worth learning about:
1) CubicWeb
Totally open-source and free, CubicWeb is well-regarded for building Web applications because it has reusable components – cubes – that allow for the hugely efficient coding of high-quality applications. The fact that it supports multiple databases, and so can be used to some pretty comprehensive ends, is an added benefit.
2) Django
If you code in Python then you’re going to encounter Django. It is almost ubiquitous, and part of the reason for this is its sheer speed. Using a design methodology called Don’t Repeat Yourself (DRY), Django has a massive number of ready-to-use libraries to simplify development, as well as in-built support for Oracle databases, MySQL, and a growing library of other databases vis third-party drivers. It is robust, scalable, fast, and highly reliable.
3) Bottle
Bottle is what is considered a “micro Web framework” for Python, meaning that it is best suited for creating and developing simple personal applications, as it has no dependencies and is supplied as a single file module, and with only one Python standard library. Why is Bottle useful? Because it allows the programmer to work really closely with the hardware, and if you’re creating bespoke applications – perhaps a custom project for one of your financial planning customers, as an example – then it is an easy-to-use and smooth option.
4) CherryPy
Another “micro-framework”, CherryPy is well regarded among Android developers because applications will run natively on that platform. It is, again, a framework designed around quickly building applications, but CherryPy has some good flexibility, as it runs on multiple HTTP servers simultaneously, has a built-in plugin system, and is highly configurable.
5) Growler
On the other end of the scale from the micro frameworks, Growler is based on the Node.js express framework and is popular because it makes developing complex apps much easier. It does that by passing Object Relational Mapping (ORM) and Templating through middleware technologies, rather than handling them directly. That allows for a lot of people and minimal fuss. As a final feather on the cap, the Growler framework has support for a large number of open-source packages.
6) Tornado
Tornado is an enormously well-regarded framework, with a feature set that allows it to simplify Web server programming and handle a lot of simultaneous open connections. The framework provides database support, URL handling, HTML templates, and more core elements to effective application development. As a result, Tornado is ideal for running real-time services.
How do I know which framework is right for me?
The right Python framework largely depends on the application that you’re looking to create. Furthermore, there are a number of integrations, around databases and the like, that you’ll need to consider, as some frameworks are more effective in some areas than others.
If that sounds vague, it’s because the reality is that without knowing what you’re looking to develop there can be no hard-and-fast answer. The best place to find answers is the large (and helpful) Python community.
If you do want to start with one framework, just to get your feet wet, the Django framework is the most supported option, and while it might not be right for your application in the end, the advice you’ll be able to draw from the community will be invaluable in giving you the foundation for working with other frameworks.
Subscribe to my newsletter
Read articles from Jacqui Coombe directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Jacqui Coombe
Jacqui Coombe
Jacqui Coombe has been a prolific reader since childhood, and now channels her love of the written word into writing content on a range of topics from business, marketing, and finance to travel and lifestyle. She has acted as a guest lecturer at establishments such as General Assembly Sydney and is a frequent attendee of leadership and management seminars to better improve her skills.