Python is one of the most popular and easy to learn programming languages and is used almost everywhere, including web development. There are many frameworks for it, some of which not only facilitate development, but also provide tools that allow you to literally in a couple of days to raise a ready-made site.
Such frameworks belong to the full stack category. They’re cool, they have tons of tools and everything included, but that can make them heavy, slow and inflexible. There are other frameworks besides fullstack frameworks, such as micro or asynchronous frameworks.
Read more about the types of frameworks
Fullstack frameworks. They have everything you need to create an application – MVC (Model-View-Controller) architecture, ORM implementation, template engine, routing and everything else. Such frameworks are suitable for any tasks, but for small projects you can do with something less cumbersome.
Microframeworks. They include only basic components and are intended for quick development of relatively small projects. They may not include, for example, form validation or database interface, so you will have to add something or connect it from third-party libraries. Some microframeworks are easily scalable as needed.
Asynchronous frameworks. The basic principle is that tasks do not have to be executed sequentially: the next one can start counting before the previous one has finished. Since it usually takes much longer to transfer data to the user and wait for his response than the actual work of the server, such frameworks do not waste time on waiting. This allows them to handle a huge number of connections simultaneously.
The main advantage of fullstack frameworks is that they already have everything you need for a full-fledged application. You don’t need to look for separate libraries for each small task and think about compatibility, so even beginners can quickly build a ready working application.
A high-level framework designed for fast and efficient development. Its architecture is designed to save you time and effort, and in the future – time and money of your customers. The main principles of Django philosophy – DRY and rapid development – encourage code reuse and reduce redundancy.
- Version control for databases (migrations).
- Proprietary template engine.
- Object-relational mappings (ORM).
- URL routing.
- Web server support.
- Authentication support.
- Support for internationalization.
- A lot of libraries. Basic functionality does not need to be written yourself – much is already written, you just need to import the appropriate libraries. You can usually rely on the quality of Django libraries.
- Community and documentation. Django has detailed documentation and a friendly community, so you can always figure out how things work or ask experts.
- Scalability. If you have no idea how much your project will grow or if it will grow at all (as is usually the case with startups), Django allows you to start small and scale up as needed.
- Django out of the box doesn’t support WebSockets, so it’s not well suited for real-time work.
- Off-the-shelf libraries are generally good, but they often reduce flexibility.
Where it’s used
- A social network for sharing photos and videos.
Django is one of the most popular frameworks and many web studios work with it, so it’s important to know how to use it if you’re going to work in web technology.
If you want something more minimalistic, you might like Pyramid. This framework is suitable for projects of any size. It has useful features for creating complex applications or scaling initially small sites for increased load.
- Handy tools for working with static assemblies.
- Predicates and renderers.
- URL generation.
- Flexibility and ease of customization. Any component of the framework, be it a database or a template engine, can be replaced. You can even use several different components at the same time (for example, connect two different databases).
- Convenient Ajax requests. Thanks to the system of decorators and views, you can send XHR requests without any extra effort on the part of the developer.
- SQLAlchemy support. SQLAlchemy provides convenient work with databases even for complex queries.
- Takes time to deploy and prepare for development.
- You need to have a good understanding of Pyramid to do customization.
- SQLAlchemy can be too cumbersome for simple applications.
Where is it used?
- Charte.ca – an online chart editor for non-specialists.
- Easy Blog Networks – a web hosting provider.
- Substance-D – a web application development environment.
TurboGears is an open source framework for rapid development of data-driven applications. It supports SQLAlchemy, Genshi, WebOb, and Repoze, so TurboGears is perfect for any system that requires good database support.
- Support for horizontal data sectioning.
- Support for multiple databases at the same time.
- Support for MVC architecture.
- PasteScript templates.
- Validation via FormEncode.
- Flexibility. TurboGears can be used both as a microframework for rapid prototyping and as a full-fledged fullstack framework to support large-scale projects.
- Extensibility. You can create your own plugins or add functionality to existing ones.
- It has so many extensibility options that it’s easy to get confused.
Where it is used
- Apache Allura is an online code repository management platform created by SourceForge.
Flask is a WSGI framework that is suitable for both simple websites and complex platforms. It is compatible with third-party libraries and has many extensions.
- Fast built-in debugger.
- Built-in dev server.
- Jinja2 templates.
- Support for REST requests.
- Compatible with any ORM.
- Secure cookies for session management on the client.
- Support for unit tests.
- WSGI 1.0 compliant.
- Clear minimalistic framework. Quite easy to understand what exactly is happening and which process is responsible for what. The logic of work does not change from version to version.
- Fast prototyping. All the tools needed for prototyping work right out of the box.
- The framework is relatively low-level, so you need to understand it first, and the requirements for the programmer’s level are higher than the others. If you don’t want to find out what and how it works under the hood, but want to make sites right away, you’d better choose something else.
Where is it used?
- Rainist is an online platform for managing personal finances.
- Netflix – one of the largest streaming platforms in the world.
- Lyft – a platform for ordering cabs and renting transportation.