9 melhores estruturas Python para criar aplicativos pequenos para empresas

Python é um brinquedo divertido e um lança-chamas assustador. O mesmo acontece com o que você pode fazer com Python.


Python é amado por amadores, cientistas e arquitetos.

É muito fácil começar, possui abstrações de ordem superior e recursos de metaprogramação para criar sistemas grandes e complexos, além de várias bibliotecas para fazer praticamente qualquer coisa. Claro, existem limitações quando se trata de simultaneidade e digitação forte, mas você pode contorná-las.

Neste artigo, veremos algumas das melhores estruturas Python quando se trata de criar aplicativos da Web grandes e pequenos.

Django

o Django O framework resistiu ao teste do tempo, o framework da web para a comunidade Python. Se você atacou um desenvolvedor Python durante o sono e os forçou a criar um aplicativo da Web sob a mira de uma arma, eles alcançariam automaticamente o Django da mesma forma que um Rubyist alcançaria o Rails.

E há uma boa razão para isso. O Django é, como diz o slogan, “uma estrutura da web para perfeccionistas com prazos”. É o que chamamos de estrutura “baterias incluídas” (como o Python é uma linguagem incluída nas baterias), que fornece todas as funcionalidades comuns prontas para uso.

Com esses recursos integrados, o Django reduz massivamente o tempo de desenvolvimento:

  • Um ORM útil e agradável, com migrações criadas e aplicadas automaticamente pela estrutura.
  • Andaimes para geração automática de painel de administração com base em seus modelos.
  • Suporte para cookies, sessões, middleware, modelos, etc..
  • Recursos de segurança como prevenção de XSS, prevenção de CRSF etc. são aplicados automaticamente.
  • Funciona com praticamente todos os bancos de dados existentes (é fácil encontrar adaptadores onde o suporte oficial não existe)
  • Suporte de primeira classe para dados geográficos e consultas espaciais GeoDjango

E muito, muito mais. Basta dizer que o Django é um framework web completo e amigável.

Django é para você?

Absolutamente sim.

O Django faz um excelente sentido para todos os casos de uso, seja para prototipagem rápida ou planejando um aplicativo corporativo. A única vantagem que você encontrará é a estrutura da estrutura. Como o Django se inclina para trás para tornar o desenvolvimento rápido e fácil para você, ele impõe sua estrutura (um conceito chamado “convenção sobre configuração”) ao desenvolvedor, com o qual você pode não concordar. Por exemplo, se você quiser substituir o Django ORM por outra coisa (por exemplo, SQL Alchemy), esteja preparado para surpresas.

Interessado em se tornar desenvolvedor full stack com Django e Python? – Veja isso curso online fantástico.

Frasco

Enquanto o Django ocupa quase todo o conhecimento em desenvolvimento web em Python, Frasco é um forte candidato.

Ao contrário do Django, o Flask é uma “micro-estrutura”, o que significa que ele se concentra em acertar algumas coisas mínimas e deixa o resto para você. Esse “o resto é com você” pode ser uma fonte de frustração ou prazer, dependendo de quais são seus objetivos. Para aqueles que sabem o que estão fazendo e desejam criar suas aplicações Web com amor, escolhendo componentes de sua escolha, o Flask é uma dádiva de Deus.

O Flask oferece os seguintes recursos:

  • Roteamento, modelo, gerenciamento de sessões e outros recursos úteis.
  • Suporte completo para teste de unidade
  • Uma arquitetura mínima e conectável
  • Suporte REST de primeira classe
  • Suporte para Blueprints, a abordagem única da Flask à arquitetura para pequenas aplicações web
  • Escolha seus pacotes para ORM, migrações etc..
  • Estrutura flexível de aplicativos – coloque seus arquivos onde eles fazem mais sentido para você
  • Serviço de arquivo estático
  • Compatível com WGSI

O Flask é para você?

Como já foi dito, o Flask é uma estrutura da Web mínima, com tudo dividido em componentes individuais que você pode trocar. Se você tem pressa de criar um protótipo, gasta muito tempo tomando decisões triviais no banco de dados, estrutura de pastas, roteamento etc., que podem ser contraproducentes. O Flask funciona melhor quando você está em um projeto sério e estável de médio a grande escala, especialmente APIs REST.

Garrafa

Se você achou que a abordagem do Flask não era mínima o suficiente e que ainda gostaria de ter mais controle, diga olá para Garrafa.

O Bottle se destaca ainda mais, até o ponto em que a única dependência é a biblioteca padrão do Python. Isso significa que nenhum pip instala isso ou instala isso, embora você provavelmente precise instalá-lo em breve. Eis por que Bottle se destaca por algumas pessoas:

  • Implantação de arquivo único. Sim, todo o aplicativo vive em um único arquivo “.py”.
  • Sem dependências externas. Se você tem a versão correta do Python instalada, é bom começar.
  • Fornece seu mecanismo de modelo, que pode ser trocado com Jinja2, Mako ou Cheetah.
  • Suporte para formulários, cabeçalhos, cookies e upload de arquivos.
  • Servidor web embutido, que pode ser facilmente substituído.

Garrafa para você?

Se você está criando um aplicativo muito pequeno (digamos, menos de 500 linhas de código) sem requisitos especiais, o Bottle pode fazer muito sentido para você. É uma abordagem completa e sem sentido para a criação de aplicativos da Web, mas, na prática, você encontrará mais obstáculos do que a ajuda de Bottle. A razão é que o mundo real está sempre mudando e antes que você perceba. Novos requisitos serão deixados em sua cabeça. Nesse ponto, colocar tudo em um único arquivo se tornaria uma tarefa.

Além disso, se você acha que Bottle e Flask são quase iguais, você está certo. Propostas de fusão os dois remontam a 2012 e até Armin, o criador do Flask, concorda com isso. No entanto, Marcel, o criador de Bottle, mantém uma distinção ideológica estrita por causa da abordagem de arquivo único e insiste que os dois permaneçam separados.

Zope

Zope é complicado de explicar, mas vou tentar. Sim, é uma estrutura da Web que pode ser usada para criar aplicativos grandes ou pequenos, mas isso não é tudo. O Zope é mais uma plataforma que consiste em ferramentas (estruturas da web incluídas) criadas sob a filosofia do Zope e mantidas pela Zope Corporation.

O Zope possui vários componentes e recursos interessantes adequados para o desenvolvimento de aplicativos corporativos:

  • Um componente de registro e arquitetura de descoberta para configurar um aplicativo grande.
  • ZODB – (o único) banco de dados de objetos do Python para armazenar objetos nativamente.
  • Estrutura e padrões completos para sistemas de gerenciamento de conteúdo
  • Um conjunto de frameworks de aplicação web – o canônico ainda é chamado Zope, embora vários novos frameworks (como o Grok) tenham sido construídos sobre ele.
  • Padrões fortes para desenvolvimento, liberação e manutenção de software.

O Zope é para você?

Se você procura um ambiente altamente estruturado para criar aplicativos realmente grandes, o Zope é bom. Dito isso, você também encontrará seu quinhão de problemas. Enquanto o Zope continua evoluindo, a comunidade é realmente pequena, na medida em que muitos desenvolvedores de Python nem sequer ouviram falar. É difícil encontrar tutoriais e documentação extensa; portanto, esteja preparado para procurar bastante (embora a comunidade seja realmente útil!). Além disso, os desenvolvedores de Python que você encontra podem não querer aprender o Zope e “diluir” seu conjunto de habilidades.

TurboGears

TurboGears é uma estrutura altamente flexível que possui uma arquitetura genuinamente composível. É uma estrutura escalável conforme suas necessidades, e você pode usá-la para criar um aplicativo de arquivo único ou um gigante de multilocação.

O TurboGears possui alguns recursos elegantes, alguns dos quais não estão presentes em estruturas populares (como o Django) ou são difíceis de construir:

  • Suporte de primeira classe para vários bancos de dados
  • Transações com vários bancos de dados
  • Altamente modular – comece com um único arquivo e expanda o quanto for necessário
  • Um ORM poderoso (SQLAlchemy, que é mais maduro e capaz que o ORM do Django)
  • Arquitetura conectável baseada na especificação WSGI
  • Suporte interno para sharding de banco de dados
  • Uma interface orientada a funções, em oposição a hierarquias profundas e rígidas orientadas a objetos.

O TurboGears é para você?

Se você deseja desenvolver-se feliz e desejar uma estrutura testada, madura e robusta, longe do barulho da mídia de “incrível, nova geração” e tudo mais, o TurboGears é uma ótima opção. É altamente respeitado na comunidade e possui documentação completa e abrangente. Claro, o TurboGears não é opinativo, o que significa que o tempo de instalação e configuração inicial pode ser maior, mas é a estrutura ideal para o desenvolvimento de aplicativos corporativos.

Web2py

Web2py começou como um projeto de hobby e foi lançado em 2007. Seus objetivos são tornar o desenvolvimento da web fácil e acessível a todos.

Como resultado, o Web2py leva ao extremo a abordagem da dependência zero – não tem requisitos, nada para instalar e inclui um editor baseado na Web completo para desenvolvimento, gerenciamento de banco de dados e implantação.

Você quase pode pensar nisso como o Android Studio, que é mais um ambiente completo do que apenas uma estrutura. Alguns recursos interessantes que o Web2py possui são:

  • Praticamente nenhuma curva de aprendizado.
  • Núcleo mínimo (apenas 12 objetos), que pode até ser memorizado!
  • Modelo Pure-Python
  • Proteção contra XSS, CSRF e outros ataques
  • Uma API agradável e consistente

O Web2py é para você?

O Web2py é uma estrutura estável e divertida, mas é difícil recomendá-lo a outras opções, como Django, Flask, etc. Quase não existem trabalhos, e a história dos testes de unidade não é ótima. Dito isso, você pode aproveitar a API de código e a experiência geral que a estrutura oferece, especialmente se você estiver criando APIs REST.

CherryPy

CherryPy é outro microframework que visa fornecer funcionalidade básica da estrutura e sair rapidamente do caminho.

Embora seja comparável a outros microframework como o Flask, o CherryPy se orgulha de alguma distinção:

  • Ele contém um servidor multiencadeado embutido (algo que permanece na lista de desejos do Flask)
  • O servidor da web (único) pode hospedar vários aplicativos!
  • Sirva seu aplicativo como um aplicativo WSGI (para fazer interface com outros aplicativos WSGI) ou como um servidor HTTP simples (com melhor desempenho)
  • Suporte de primeira classe para criação de perfil e teste de unidade
  • É executado em PyPy (para os verdadeiros viciados em desempenho), Jython e até Android

CherryPy faz tudo isso e, em seguida, o habitual que você esperaria de uma estrutura da web.

CherryPy é para você?

Se você está criando serviços RESTful principalmente, o CherryPy é um candidato muito mais sério do que o Flask. É uma estrutura de uma década que amadureceu muito bem e é adequada para pequenas e grandes aplicações.

Sanic

A ascensão do Node e seu modelo de programação assíncrona deixaram muitas comunidades se sentindo para trás, incluindo o Python. Em resposta, uma enxurrada de estruturas da Web assíncronas apareceu no radar, Sanic sendo um deles.

A Sanic é fortemente inspirada pelo Flask, na medida em que emprestou os decoradores de rotas, o Blueprints e outros fundamentos da linha de gancho e da chumbada. E eles não têm vergonha de admitir. O que a Sanic traz para a mesa, se você é um fã do Flask, é a verdadeira E / S sem bloqueio para atender aos níveis de desempenho de um aplicativo Node. Em outras palavras, o Sanic é o Flask com suporte assíncrono / aguardado!

Quando comparado ao CherryPy, o Sanic tem uma incrível vantagem de desempenho (pense em como ele se sairia contra o Flask!). Confira os seguintes resultados testados por DataWeave:

Como você pode ver, uma vez que os números de simultaneidade começam a exceder 50 por segundo, o CherryPy praticamente engasga e gera uma alta taxa de falhas.

Sanic é para você?

Embora as características de desempenho do Sanic tirem todo o resto da água, pode não ser a melhor escolha para o seu próximo projeto. O principal motivo é a falta de bibliotecas assíncronas. A maior parte das ferramentas e bibliotecas Python existentes foi escrita para a versão CPython de thread único, sem previsão de alta simultaneidade ou operações assíncronas. Se, por exemplo, seu ORM favorito não suportar operações assíncronas, o ponto principal do uso do Sanic será derrotado.

Por esses motivos de maturidade e disponibilidade, não examinaremos mais estruturas assíncronas no Python.

Masonite

Me deparei com essa estrutura há um tempo atrás e pensei que era um passo na direção certa. Desde então, a versão 2.0 foi lançada e sinto que finalmente chegou a hora de dar Masonite algum amor.

Simplificando, Masonite é a versão Python do Laravel (um famoso framework PHP, caso você não saiba). Por que isso importa? É importante porque o Laravel foi construído com base nos princípios do Ruby on Rails, e juntos esses dois frameworks permitem que desenvolvedores não-Ruby experimentem o “Rails Way” de fazer as coisas.

Os desenvolvedores do Laravel (e até certo ponto, Rails) se sentirão em casa e estarão em funcionamento literalmente em pouco tempo. Quando tentei o Masonite (e enviei um problema ou dois, incluindo um bug!), Consegui criar APIs REST com exatamente zero pensamento, porque minha memória muscular do Laravel estava fazendo tudo.

Como uma estrutura de pilha cheia incluída nas baterias, a Masonite traz várias coisas interessantes para a mesa:

  • ORM de estilo de registro ativo
  • Migrações de banco de dados (que, diferentemente do Django, precisam ser criadas pelo desenvolvedor)
  • Um poderoso contêiner de IoC para injeção de dependência
  • CLI próprio (chamado de “embarcação”) para andaimes e tarefas em execução
  • Suporte de primeira classe para testes de unidade

O maior “rival” da Masonite é o Django, pois a comunidade está fazendo o possível para comercializar a estrutura como fácil, agradável e a próxima grande novidade. Se ele ultrapassará o Django é algo que o tempo dirá (se você me perguntar, ele tem uma chance decente), mas para uma discussão comparando os dois, consulte aqui e aqui.

Masonita é para você?

Masonita ainda é um bebê quando comparado ao Django, então não há como recomendá-lo ao Django. Dito isto, se você gosta do Rails (ou do Laravel) de fazer as coisas, apreciaria o que a Masonite tem a oferecer. É ideal para a construção rápida de protótipos que precisam de tudo pré-configurado e fácil de alternar.

Conclusão

Não há escassez de estruturas da Web Python por aí, grandes e pequenas. Embora você possa escolher praticamente qualquer coisa para um projeto pequeno, um aplicativo corporativo tem demandas que muitas dessas estruturas não podem atender. Se você me perguntar, para o desenvolvimento empresarial, Django (até certo ponto), Zope e TurboGears são o que vem à mente. E mesmo entre eles, estou inclinado a TurboGears.

Dito isto, qualquer arquiteto que se preze pode pegar uma microframework e implementar sua arquitetura. E é exatamente isso que acontece na prática, o que explica o sucesso do Flask e de idéias semelhantes.

Se você é um novato, então este curso online Seria útil aprender Python.

TAG:

  • Pitão

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map