Escolha de uma estrutura melhor

O mundo dos frameworks da web Python oferece muitas opções. Alguns dos frameworks proeminentes a serem considerados são Django, Flask, Bottle, Diesel, Web2py, Pyramid, Falcon, Pecan, etc., que competem pela participação do desenvolvedor. Frameworks como Pyramid, Django, Web2py e Flask são ideais com sua lista de prós e contras; escolher apenas um para o seu projeto é uma escolha difícil de fazer.

Dash é inteiramente projetado para diferentes conjuntos de necessidades. Portanto, como desenvolvedor, você deseja reduzir a legião de opções para aquela que o ajudará a terminar seu projeto no prazo e com perfeição.

Se compararmos os frameworks Flask, Pyramid e Django, o Flask é um micro-framework voltado principalmente para pequenos aplicativos com requisitos mais simples, enquanto o Pyramid e o Django são voltados para aplicativos maiores. O Pyramid é construído com flexibilidade e liberdade em mente, então o desenvolvedor tem as ferramentas certas para o projeto. No caso de pirâmide, o desenvolvedor é livre para escolher o banco de dados, estrutura de URL, estilo de template e muito mais. No entanto, o Django inclui todas as baterias de que um aplicativo da web precisa, portanto, só precisamos instalar o Django e começar a trabalhar.

Django vem com um ORM, enquanto Pyramid e Flask deixam para o desenvolvedor escolher como (ou se) eles querem que seus dados sejam armazenados. Geralmente, o ORM mais comum para aplicativos da web não Django é de longe o SQLAlchemy; no entanto, outras opções podem ser DjangoDB, MongoDB, LevelDB e SQLite.

Sendo um desenvolvedor, devo escolher entre Django e Web2py para meu projeto. Eu preciso ter uma ideia dos benefícios e limitações dos frameworks. Então, vamos comparar Django e Web2py -

Django

A comunidade de Django é uma grande vantagem. Isso realmente significa para um desenvolvedor que a riqueza de recursos será maior. Especificamente, isso se resume a -

  • Documentation
  • Recursos de código aberto
  • Suporte a aplicativos de terceiros
  • Suporte de implantação
  • Canais IRC com desenvolvedores úteis

Django tem uma grande comunidade de equipe de desenvolvimento e documentação. É a estrutura certa quando estamos lidando com a criação de um back-end complexo, pois fornece muitos aplicativos de terceiros que permitem automatizar coisas como a lógica do usuário (inscrição, autenticação), tarefas assíncronas, criação de API, blogs, etc.

Web2py

O Web2py é uma boa opção para o desenvolvimento rápido de aplicativos da web simples ou servidores http. Abaixo estão alguns dos benefícios e limitações do web2py.

Benefícios do Web2py

A seguir estão alguns dos benefícios da estrutura Web2py -

  • Web2py é um framework potencial quando comparado ao Django e Flask em termos de velocidade e simplicidade de desenvolvimento. Como o Web2py usa uma linguagem de modelo baseada em python, isso permite que os desenvolvedores de python comecem a escrever código imediatamente após entender os fundamentos da escrita de modelo como visualizações.

  • Web2py pode executar código compilado em python como uma otimização para diminuir o tempo de execução e permitir que você distribua seu código de forma compilada.

Limitações do Web2py

A seguir estão algumas das limitações da estrutura:

  • Web2py oferece suporte a doctests, mas não oferece suporte a testes de unidade. Agora, os doctests não são a escolha ideal devido ao seu escopo limitado.

  • Não há diferenciação entre modo de produção e desenvolvimento. Caso ocorra uma exceção, o ticket é gerado todas as vezes e você terá que navegar até o ticket para verificar o erro. Isso pode ser útil no caso do servidor de produção, mas será difícil no ambiente de desenvolvimento, pois os desenvolvedores realmente precisam ver o erro instantaneamente em vez de verificar o número do tíquete.

  • O Web2py tem uma boa camada de abstração de banco de dados (DAL) que permite abstrair muitos tipos de mecanismos de banco de dados, mas carece de ORM poderoso. No caso de você estar lidando com um modelo relativamente grande, seu código ficará disperso por todas as definições e atributos aninhados, o que torna as coisas complicadas.

  • Não podemos usar ferramentas de desenvolvimento python padrão sem modificações, pois web2py tem um suporte IDE muito pobre.

Os frameworks Django e Web2py são frameworks full stack. Isso significa que eles fornecem todo o código necessário - de geradores de formulários a layouts de modelos e validação de formulários, e permitem que você escreva coisas de acordo com suas necessidades específicas.

No entanto, com as estruturas não empilhadas, como Flask e Pyramid, se você quiser criar um site completo, precisará adicionar muitos códigos e bits extras. Isso exige muita habilidade e tempo.

Traço

O Dash foi inteiramente projetado para tarefas específicas de construção de uma estrutura reativa para painéis. Dash by Plotly é uma ótima maneira para o desenvolvedor Python criar aplicativos web interativos sem ter que aprender Javascript e desenvolvimento web front end. Dash é construído em cima de Flask, Plotly.js, React e React Js.

Não há comparação entre o Dash e outros frameworks (mencionados acima), pois eles pertencem a diferentes categorias de frameworks. Abaixo estão algumas das razões para preferir o painel em vez de outras estruturas de painel interativo (Jupiter Dashboards, matplotlib e outros) -

  • Com apenas 50 linhas de código, você pode escrever um aplicativo Dash simples “hello world”, pois Dash requer muito pouco boilerplater.

  • Aplicativos inteiros do Dash são escritos em linguagem python, a linguagem preferida globalmente.

  • Em seu próprio código python, você pode vincular componentes interativos do painel, como lista suspensa, entradas de texto, controles deslizantes e gráficos com “callbacks” reativos do painel.

  • UIs complicadas em aplicativos Dash podem ter várias entradas, várias saídas e entradas que dependem de outras entradas.

  • Simultaneamente, vários usuários podem trabalhar em aplicativos Dash.

  • Para criar seus próprios componentes Dash com React, dash usa React.js para renderizar componentes e inclui um sistema de plugin.

  • Os desenvolvedores ou escritores podem escrever aplicativos de traço que respondem a clicar, passar o mouse ou selecionar pontos no gráfico, pois os componentes do gráfico do traço são interativos.

Conclusão

Podemos concluir que a escolha da estrutura certa entre muitas estruturas Python disponíveis depende exclusivamente do tipo de projeto, complexidade, projeto de nível pequeno ou empresarial, tipo de suporte da comunidade disponível ou recurso online disponível, escalabilidade, segurança, etc.

Os frameworks python mencionados acima são os melhores em sua classe, mas têm seus próprios benefícios e desvantagens (dependendo dos requisitos do projeto). Portanto, um tipo de estrutura não é adequado para todos os tipos de projetos.