6 Python Frameworks You Need To Know

Photo of a black flat screen computer monitor.jpg

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.