Top 13 Python Web Frameworks para aprender em 2020

Frameworks tornam a vida dos desenvolvedores mais fácil, oferecendo-lhes uma estrutura para o desenvolvimento de aplicações. Eles automatizam a implementação de soluções comuns, reduzindo o tempo de desenvolvimento e permitindo que os desenvolvedores se concentrem na lógica da aplicação ao invés dos elementos de rotina.

Neste artigo, compartilhamos uma lista dos doze principais frameworks web Python que serão úteis no seu caminho para se tornar um desenvolvedor backend profissional e melhorar o seu conjunto de habilidades existentes.

Por que frameworks Python? Stack Overflow lançou recentemente os resultados da sua pesquisa anual com desenvolvedores para 2019, que declarou Python a linguagem de programação de maior crescimento.

source: stackoverflow.blog

De longe, os frameworks Python mais populares são Django e Flask. Mas isso não significa que você deve descontar o potencial de outros frameworks. Cada um deles possui características que poderiam ser uma combinação perfeita para seu projeto web.

source: jetbrains.com

Cuidado que os frameworks Python de que vamos falar aqui não estão listados em nenhuma ordem em particular: nós focamos em mostrar o que você é capaz de fazer, ao invés de dizer o que você deve fazer.

Algumas coisas a considerar

Para uma coisa, ao decidir qual framework usar, olhe para o tamanho e complexidade do seu projeto. Se o que você está procurando desenvolver é um grande sistema repleto de características e requisitos, um framework de pilha cheia pode ser a escolha certa. Se o seu aplicativo estiver do lado menor e mais simples, você provavelmente deve considerar um micro framework.

Segundo, você precisa verificar se o framework que você está considerando pode ser dimensionado vertical e horizontalmente. Este é um must para projetos que devem ser executados em vários servidores, lidar com grandes quantidades de tráfego e suportar a adição de novas funcionalidades para melhorar as funcionalidades.

Após escolher um framework, entre em contato com uma equipe de desenvolvedores e peça informações sobre o custo estimado para desenvolver seu aplicativo.

Você pode encontrar informações sobre o tipo e o foco de alguns frameworks aqui. Uma decisão final, entretanto, deve vir de seu próprio entendimento do seu projeto e das tarefas que você quer simplificar.

No entanto, frameworks também podem atrapalhar o desenvolvimento. Ao escolher um framework completo, você está frequentemente se inscrevendo em um conjunto de limitações. É claro que você pode encontrar maneiras de contorná-las, mas tenha cuidado para não gastar mais tempo lutando por sua própria liberdade do que você teria escrevendo um aplicativo em Python puro.

Full-stack frameworks

A full-stack framework ou um framework corporativo é uma solução completa com bibliotecas configuradas para trabalhar perfeitamente juntas. Ele suporta o desenvolvimento de serviços backend, interfaces front-end e bancos de dados. Um framework full-stack fornece tudo o que um desenvolvedor precisa para construir uma aplicação. Python oferece mais de um framework full-stack.

Django

Site oficial | GitHub | PyPI | Awesome

GitHub Stars: 44,077 | GitHub Forks: 18,949

Django é um framework Python livre de código aberto e completo. Ele tenta incluir todos os recursos necessários por padrão, ao invés de oferecê-los como bibliotecas separadas.

Algumas das características exemplares do Django são sua autenticação, roteamento de URL, mecanismo de template, mapeador objeto-relacional (ORM), e migrações de esquemas de banco de dados (Django v.1.7+).

Estas características tornam o Django altamente escalável, ridiculamente rápido, e extremamente versátil.

Django usa seu ORM para mapear objetos para tabelas de banco de dados. O mesmo código funciona com bases de dados diferentes e não é difícil de transferir de uma base de dados para outra. Os principais bancos de dados com os quais o Django trabalha são PostgreSQL, MySQL, SQLite e Oracle, mas drivers de terceiros permitem que você use outros também.

Com o Django, você pode criar qualquer aplicação web desde projetos de pequena escala até sites complexos. Graças à sua flexibilidade, Django também é usado para criar MVPs, permitindo que startups otimizem seu tempo e orçamento.

A base de usuários do Django deve crescer, já que muitos desenvolvedores vêem este framework como a melhor escolha para tecnologias emergentes, como a aprendizagem de máquinas. Além disso, em 2020, a comunidade Django está planejando lançar mais bibliotecas para atender à crescente demanda.

Aqui no SteelKiwi, nós usamos Django como nossa estrutura principal para o desenvolvimento de backend. Se você gostaria de ver os incríveis aplicativos que já desenvolvemos com Django, visite nossa página de Projetos.

Pyramid

Site oficial | GitHub | PyPI | Awesome

GitHub Stars: 3,215 | GitHub Forks: 866

Pyramid é um framework de aplicação web de código aberto – e o segundo de destaque – baseado em Python. O seu objectivo é fazer o máximo possível com o mínimo de complexidade. Executando em Python 3, o Pyramid acompanha as melhorias tecnológicas. O Pyramid 1.10 é a versão atual do framework e é a décima atualização desde 2010.

A característica mais marcante do Pyramid é sua capacidade de trabalhar bem com aplicações pequenas e grandes. Algumas das grandes características do Pyramid incluem:

  • Aplicações de arquivo único
  • Geração deURL
  • Configuração extensível
  • Fornecimento de templates abrangentes e especificações de ativos
  • Autenticação flexível e autorização
  • Testes, suporte, e documentação de dados abrangente
  • Vistas de previsão e muitas vistas por rota
  • Decoradores de função
  • Previsões
  • Renderizadores

Com o Pyramid, um desenvolvedor pode decidir sobre a linguagem de modelos, bibliotecas de geração e camada de base de dados.

A comunidade Pyramid está ativa e possui muitos lançamentos. Os desenvolvedores podem acompanhar o progresso do framework entrando no canal oficial do IRC ou juntando-se ao Google e grupos do Twitter.

TurboGears

Site oficial | GitHub | PyPI

GitHub Stars: 654 | GitHub Forks: 65

TurboGears é um framework de aplicação web de código aberto, orientado por dados. Ele foi construído sobre muitos middleware e muitas bibliotecas e foi inicialmente criado para combinar os melhores componentes de outros frameworks Python.

TurboGears permite que você desenvolva rapidamente aplicações web extensíveis e orientadas a dados. Ele vem com um motor de templates de fácil utilização e um ORM poderoso e flexível. Além de excelentes sistemas de templates que facilitam a vida dos designers, o TurboGears oferece muita flexibilidade, forte suporte a agregados, um poderoso ORM, e snippets reutilizáveis.

Algumas das características distintivas do TurboGears incluem:

  • Suporte para múltiplas bases de dados
  • Arquitetura estilo MVC
  • Suporte para SQLObject e SQLAlchemy
  • Kid e Genshi incluídos em linguagens de templates preferenciais
  • Validação com FormEncode
  • Pylons como servidor web
  • ToscaWidgets, uma biblioteca de aplicações que simplifica a coordenação do design do frontend e desenvolvimento do servidor
  • PasteScript templates
  • Servidores baseados em WSGI voltados para a frente (servidor Paste HTTP, servidor CherryPy WSGI/HTTP, etc.).)
  • Ferramentas de linha de comando
  • Integração da biblioteca JavaScript do MochiKit
  • Todas as funcionalidades implementadas como decoradores de funções

Como para o futuro do TurboGears, a comunidade está atualmente trabalhando para melhorar as capacidades da estrutura e a estabilidade geral e estão prestes a lançar o “código mínimo”. Este código também é referido como um microframework, ou uma versão despojada do TurboGears. O código mínimo ajudará os desenvolvedores a construir aplicativos mais rapidamente, economizando dinheiro e tempo.

Web2py

Site oficial | GitHub | PyPI

GitHub Stars: 1,794 | GitHub Forks: 818

Web2py é uma estrutura Python de código aberto escalável e de código aberto. É muito poderoso quando se trata de lidar com dados. Web2py foi originalmente oferecido como uma ferramenta de ensino com foco na facilidade de uso. Isto explica porque não há arquivos de configuração em nível de projeto.

O que é ótimo sobre Web2py, no entanto, é que ele vem com sua própria IDE baseada na web que, entre outras coisas, inclui um editor de código, depurador, e implementação com um clique.

Outros recursos valiosos do Web2py incluem:

  • Sem requisitos para instalação e configuração
  • Ability to run on Windows, Mac, Linux/Unix, Google App Engine, Amazon EC2, e qualquer hospedagem web que suporte tanto o Python 2.5-2.7 ou Java+Python
  • Reabilidade de leitura de múltiplos protocolos
  • Segurança de dados que previne vulnerabilidades como scripts cross-site, falhas de injeção e execução de arquivos maliciosos
  • Aplicação bem sucedida de práticas de engenharia de software, tornando o código fácil de ler e manter
  • Rastreamento de erros, registo completo de erros e emissão de bilhetes
  • Controlo de acesso baseado na rotação
  • Suporte para internacionalização
  • Compatibilidade retroativa que assegura o avanço orientado para o usuário sem a necessidade de perder laços com versões anteriores

Um sistema de emissão de bilhetes é a principal característica do Web2py; ele emite bilhetes sempre que ocorrem erros. Desta forma, os usuários podem acompanhar os erros e seus status.

Apesar de todas estas vantagens, a comunidade Web2py é menor que a do Pyramid ou do Django. Poucos desenvolvedores estão usando-o. Isto significa que as chances de receber suporte são menores. Além disso, a lista de discussão oficial não é muito ativa.

Microframeworks

Um microframework, ou um framework de aplicação web minimalista, carece da maior parte das funcionalidades de um framework completo, como um mecanismo de template web, funcionalidade de autenticação, contas, autorização, validação de entrada e saneamento de entrada. Uma microestrutura tenta fornecer apenas o conjunto de componentes necessários para a construção de uma aplicação. Pode também focar em fornecer a funcionalidade necessária para uma esfera em particular.

Flask

Official Website | GitHub | PyPI | Awesome

Github Stars: 46.475 | GitHub Forks: 12,921

Flask é uma estrutura Python disponível sob a licença BSD. Ele foi inspirado na estrutura Sinatra Ruby. Flask depende do toolkit Werkzeug WSGI e do template Jinja2.

A ideia principal por trás de Flask é ajudar a construir uma base sólida de aplicações web. A partir daí, você pode usar quaisquer extensões que você possa precisar. O Flask é escolhido para todo e qualquer projeto. Na verdade, é uma escolha padrão para qualquer projeto web que não seja compatível com Django.

O design leve e modular do Flask o torna facilmente adaptável às necessidades dos desenvolvedores. Ele inclui uma série de características úteis out-of-the-box:

  • Servidor de desenvolvimento e um depurador rápido
  • Suporte integrado para testes unitários
  • Despacho de requisição de RESTful request
  • Jinja2 templating
  • Suporte seguro de cookies (sessões do lado do cliente)
  • WSGI 1.0 complacência
  • Baseado em Unicode
  • Possibilidade de ligar qualquer ORM
  • Controlo de pedidos deHTTP

Desde o seu lançamento em 2010, o Flask foi actualizado 27 vezes. Até à data, continua a ser a estrutura de topo de crescimento Python. Entretanto, muitas extensões do Flask não são mais suportadas: a documentação está desatualizada e elas não estão mais sendo desenvolvidas. Se você se deparar com isso, você precisará do Google para encontrar um plug-in suportado ativamente com funcionalidade similar.

Bottle

Site oficial | GitHub | PyPI

GitHub Stars: 6,348 | GitHub Forks: 1,245

Bottle é uma microestrutura. Originalmente destinado à construção de APIs, Bottle implementa tudo em um único arquivo fonte. Ele não tem dependências além da biblioteca padrão Python. Codificar com Bottle o aproxima mais do metal do que codificar com qualquer framework de pilha cheia. Entretanto, Bottle é uma combinação apenas se você estiver criando uma aplicação muito pequena com no máximo 500 linhas de código e sem requisitos especiais.

Its recursos padrão incluem roteamento, templates, utilitários, e uma abstração básica sobre o padrão WSGI.

  • Routing – suporta pedidos para mapeamento de chamadas de função, permitindo alcançar URLs limpas e dinâmicas
  • Templates – um motor de template rápido e Pythonic fora da caixa junto com suporte completo para mako, jinja2, e cheetah
  • Utilitários – acesso confortável a dados de formulários, uploads de arquivos, cookies, cabeçalhos, e outros metadados relacionados a HTTP
  • Servidor – um servidor de desenvolvimento HTTP integrado que suporta fapws3, bjoern, GAE, СherryPy, e qualquer outro servidor HTTP compatível com WSGI

Desde 2009, o Bottle foi atualizado 73 vezes, e agora é uma solução perfeita para prototipagem, aprendizagem da organização de frameworks web, e construção de aplicativos pessoais simples.

Todas as contribuições para a comunidade Bottle são aceitas via GitHub. Os usuários também podem participar da lista de discussão e do blog Bottle e acompanhar as últimas mudanças no Twitter. Se você está procurando por um fórum adicional para discussão, junte-se a um chat freenode.

CherryPy

Site oficial | GitHub | PyPI

GitHub Stars: 1,057 | GitHub Forks: 259

CherryPy é um framework web minimalista e de código aberto. Ele torna a construção de aplicações web Python não diferente da construção de qualquer outro programa orientado a objetos.

CherryPy é criado para ser extensível. Por exemplo, uma aplicação web CherryPy é uma aplicação Python independente que incorpora o seu próprio servidor web multithreaded. Com seu próprio servidor web, os pontos de extensão incluem funções fora do ciclo de resposta ao pedido, adicionando assim ao nível de extensibilidade do CherryPy.

Na verdade, uma aplicação web CherryPy-powered é uma aplicação autônoma Python que incorpora seu próprio servidor web multithreaded. As aplicações CherryPy são executadas em qualquer sistema operacional que suporte Python (Windows, macOS, Linux, etc.). Eles podem ser implantados em qualquer lugar que você possa rodar uma aplicação Python comum. Você não precisa do Apache para aplicações CherryPy, mas você pode rodar uma aplicação CherryPy atrás do Apache tão bem quanto você pode rodá-la atrás do Lighttpd ou IIS.

CherryPy não é um framework muito limitador, pois permite que você use qualquer tipo de tecnologia para templates, acesso a dados, e assim por diante. No entanto, ele ainda é capaz de lidar com sessões, estáticas, cookies, upload de arquivos e tudo mais que um framework web normalmente pode.

Algumas das características padrão do CherryPy incluem:

  • Um HTTP/1.Servidor WSGI compatível com 1 thread-pooled WSGI
  • Simplicidade de executar múltiplos servidores HTTP de uma vez
  • Um sistema de configuração poderoso
  • Um sistema de plugin flexível
  • Ferramentas out-of-the-box para cache, codificação, sessões, autenticação, conteúdo estático, e assim por diante
  • Suporte de plugin para perfis, cobertura e testes
  • >

  • Abilidade de executar no Python 2.7+, Python 3.1+, PyPython, Jython, e Android

Embora todas as suas características e vantagens, muitos desenvolvedores acham que a documentação do CherryPy poderia usar alguma melhoria. Além disso, CherryPy poderia ser pelo menos um pouco mais fácil de usar.

Como a maioria dos outros frameworks, CherryPy tem uma comunidade por trás dela que fornece assistência a iniciantes e desenvolvedores avançados. CherryPy tem uma lista de discussão e sugere aos desenvolvedores que se juntem ao canal IRC do framework ou aos grupos Gitter e Google.

Falcon

Site oficial | GitHub | PyPI

GitHub Stars: 1,057 | GitHub Forks: 259

>

Falcon é um framework web API Python bare-metal para construir backends muito rápidos. O logotipo do framework é um falcão, simbolizando a rapidez com que o Falcon funciona.

Este framework permite aos desenvolvedores criar designs mais limpos e lidar com a maioria dos pedidos. O Falcon nunca restringe os desenvolvedores na escolha de bibliotecas para bancos de dados e autorizações.

Outros recursos valiosos do Falcon:

  • 100% de cobertura de código com um conjunto de teste abrangente
  • Uma base de código altamente otimizada
  • Manuseio de exceções frontal
  • REST-classes de recursos inspirados
  • Modelos URI para rotinas intuitivas
  • Acesso fácil através de classes de pedido e resposta
  • Processamento de pedidoDRY através de middleware componentes
  • Respostas a erros HTTP idiomáticos
  • Testes unitários via WSGI helpers

Falcon ignora operações inúteis durante o desenvolvimento de uma estrutura web. Também dá liberdade de escolha: desenvolvedores podem tomar decisões que os ajudarão a afinar e customizar implementações livremente.

Duas outras vantagens que vale a pena mencionar são a disponibilidade de documentação extensa e uma comunidade ativa.

Abraço

Site oficial | GitHub | PyPI

GitHub Stars: 5,905 | GitHub Forks: 347

>

Hug é um framework de desenvolvimento Python 3 API. Ele é criado para permitir que engenheiros de software desenvolvam uma vez uma API e depois a reutilizem sempre que necessário. O framework Hug simplifica o desenvolvimento da API, oferecendo várias interfaces. Essa é a principal razão pela qual esse framework é chamado de um dos mais rápidos do Python 3.

Key features of Hug:

  • Suporte para documentação automática
    >

  • Validação com notação
  • Gerenciamento de versões em Python
  • Conformidade com Cython
  • Pode ser usado como uma biblioteca Python

O framework Hug contém o mínimo de integrações e o mínimo de código possível, permanecendo funcional e proporcionando um ótimo desempenho. Além disso, a comunidade do Hug está atualmente crescendo. Isso é um sinal da demanda da estrutura e uma prova de que sempre que um problema ocorre, um desenvolvedor pode encontrar ajuda.

FastAPI

Site oficial |GitHub |PyPI

GitHub Stars: 4,835| GitHub Forks: 256

>

FastAPI é um framework moderno baseado em Python. Foi inicialmente concebida para ser fácil de usar para garantir a melhor experiência de desenvolvimento. Até à data, FastAPI é um dos frameworks mais rápidos para construir APIs com Python 3.6+.

O framework tirou várias características do Flask, incluindo a sua simplicidade. Todo o framework é construído no Starlette e inclui a maioria de suas características (templates, WebSockets, e suporte a GraphQL).

O framework FastAPI oferece:

  • Aumento da velocidade de desenvolvimento em 200% a 300%
  • Erros reduzidos em 40%
  • Debugging sem tempo
  • Minimização da duplicação de código
    >

  • Documentação interativa automática

O FastAPI não está firmemente acoplado a nenhuma base de dados. No entanto, ele suporta bases de dados que você precisa. Com FastAPI, você está livre para estruturar seu projeto da maneira que você precisa e até mesmo usar a maioria dos mesmos arquivos de um de seus projetos de Flask.

A única desvantagem é sua pequena comunidade. Mas é porque FastAPI é um framework relativamente novo.

Framework assíncrono

Um framework assíncrono é um tipo relativamente recente de framework Python. É um framework micro que permite aos desenvolvedores lidar com um grande conjunto de conexões simultâneas. Framework assíncrono utiliza soquetes não bloqueadores e alimenta a biblioteca asyncio do Python.

Sanic

Site oficial | GitHub | PyPI

GitHub Stars: 12,780 | GitHub Forks: 1,203

Sanic é um framework web Python construído sobre uvloop e criado especificamente para respostas rápidas HTTP através do tratamento assíncrono de solicitações.

Corre em Python 3.5+. O Sanic suporta manipuladores de requisições assíncronas, o que o torna compatível com as funções async/await do Python 3.5. Isto aumenta a sua velocidade, oferecendo capacidades non-blocking.

Sonic é considerado o framework assíncrono preferido no mundo Python devido ao seu roteamento, middleware, cookies, versionamento, arquivos estáticos, blueprints, visualizações baseadas em classes e sockets. Entretanto, ele não oferece suporte a banco de dados e templates.

Em um teste de benchmark com um processo e 100 conexões, a Sanic foi capaz de lidar com 33.342 pedidos por segundo, com uma latência média de 2,96 ms.

Tornado

Site oficial | GitHub | PyPI

GitHub Stars: 18.292 | GitHub Forks: 5,040

Tornado é uma estrutura web Python e biblioteca de rede assíncrona que se concentra na velocidade e na capacidade de lidar com grandes volumes de tráfego. Ela usa uma E/S de rede sem bloqueio e resolve o problema do C10k (o que significa que, se configurada corretamente, pode lidar com mais de 10.000 conexões simultâneas).

Isso a torna uma ótima ferramenta para construir aplicações que requerem alto desempenho e dezenas de milhares de usuários simultâneos.

As principais características do Tornado são:

  • Suporte para autenticação de usuários
  • Serviços em tempo real
  • Desempenho de alta qualidade
  • Linguagem de modelos web baseada em Python
  • Cliente HTTP sem bloqueio
  • Implementação de esquemas de autenticação e autorização de terceiros (Google OpenID/OAuth, Login no Facebook, Yahoo BBAuth, FriendFeed OpenID/OAuth, Twitter OAuth)
  • Suporte para tradução e localização

Em termos de popularidade, Tornado fica em algum lugar entre Django e Flask. Digamos que você queira escrever algo no Flask ou Django por causa de suas características e ferramentas, mas você também precisa de um desempenho muito melhor. Neste caso, você deve escolher Tornado.

Outros

Dash

Site oficial | GitHub | PyPI | Awesome

GitHub Stars: 9,856 | GitHub Forks: 1,011

Dash é um framework Python de código aberto usado para construir aplicações web analíticas. É especialmente bom para cientistas de dados Python que não estão muito familiarizados com desenvolvimento web.

Existem dois benefícios básicos do Dash:

  • Permite construir aplicações altamente interativas usando apenas código Python.
  • Forma simples usar o poder das ferramentas Python para manipulação de dados.

Aplicações Dash são servidores web que rodam Flask e se comunicam com pacotes JSON sobre pedidos HTTP. Seu frontend renderiza componentes com React.js.

Apps desenvolvidos com o Dash são renderizados no navegador web e podem ser implantados em servidores. Isto também significa que as aplicações Dash são inerentemente multi-plataforma e prontas para celulares.

Desenvolvedores Dash têm acesso à instância Flask subjacente e a todas as suas propriedades configuráveis. Para ampliar as capacidades das aplicações Dash, os desenvolvedores também podem usar o rico conjunto de Flask Plugins.

Escolhendo um framework web Python

O framework certo pode ser tudo o que você precisa para desenvolver um projeto de sucesso. Nós realmente esperamos que você tenha encontrado um framework interessante neste artigo. Nós também temos outro, os 17 melhores frameworks web Python de 2017, se você estiver interessado em explorar mais opções.

Nós adoraríamos se você visitasse nossa página corporativa do GitHub. Nossos desenvolvedores SteelKiwi estão se esforçando para inovar no mundo da tecnologia, e quanto mais pessoas se envolverem, melhor.

Deixe uma resposta

O seu endereço de email não será publicado.