Django ou Flask, qual devo usar?

Django ou Flask, qual devo usar?

Python é a minha linguagem de programação preferida, por muitos motivos. Como todo desenvolvedor que cria software com esta linguagem, eu pesquisei muito na internet sobre quais de seus frameworks seriam melhores escolhas para se adotar. Dois nomes sempre surgiam naturalmente: Django e Flask. Ambos diferem em vários aspectos, mas reinam como escolhas praticamente óbvias sempre que buscamos por frameworks para desenvolver softwares web em Python. Aqueles que estão começando com a linguagem, sobretudo, em algum momento terão que optar por um deles para começar seus estudos (com o tempo, acabamos incorporando ambos em nosso stack). Eu, por exemplo, já me fiz a clássica pergunta: “Django ou Flask, qual devo usar?”

Lembro que na época eu estava em busca de uma boa alternativa ao PHP e a linguagem Ruby estava em alta. Ruby é uma linguagem charmosa e ágil, mas eu desenvolvia em Python há muito mais tempo, então a balança pendeu. Python é uma linguagem indiscutivelmente incrível, que dá ao programador a possibilidade de resolver problemas com uma agilidade no mínimo impressionante.  O foco é mantido, principalmente, na criação de um código altamente legível e fácil de manter. Como uma linguagem interpretada de alto nível, ela é também bastante indicada para iniciantes, uma vez que possui uma baixa curva de aprendizado.

Em um exemplo simples, é possível notar a natureza ágil da linguagem. Senão vejamos.:

Veja como encontrar a transposta de uma determinada matriz Em PHP:

<?php

$trans = [
      [1,2,3],
      [4,5,6]
];
array_unshift($trans, null);
$trans = call_user_func_array('array_map', $trans);
var_dump($trans);

?>

Agora veja como obter o mesmo resultado com Python:

>>> t = [[1, 2, 3], [4, 5, 6]]
>>> zip(*t)

É quase inacreditável, não é mesmo? É claro que tamanha agilidade oferecida pela linguagem se propaga em seus melhores frameworks de desenvolvimento web, como é o caso do Django e do Flask. Assim, se você tem feito a pergunta que intitula este post, é possível que as próximas linhas contenham alguma informação que seja determinante na sua escolha.

Razões para escolher o Django

  • Enorme comunidade
  • Livros e documentação vastos
  • Um montão de aplicações disponíveis no Github ou no Pypi.
  • ORM embutido, engine de templates, ferramenta de console, etc
  • Interface administrativa disponível nativamente
  • Sistema completo de autenticação, com gerenciamento de permissões
  • Todas as baterias inclusas.
  • Mercado altamente aquecido, com grandes empresas brasileiras usando. A Globo.com, por exemplo.

Razões para escolher o Flask

  • Fácil de aprender, aliás, muito muito fácil.
  • Muito bem documentado
  • Pequeno core altamente extensível. Você inicia com o estritamente necessário e vai “plugando” funcionalidades conforme necessário, exemplo do Flask-sqlalchemy para ORM.
  • Engine de templates Jinja2, considerado por muitos como mais rápido que o engine de templates do Django
  • Não possui interface administrativa nativa como o Django, mas pode ser incluída por meio de uma extenção
  • Baixíssima curva de aprendizado, sobretudo se comparado com o Django

Obviamente você pode adotar os dois após um certo tempo e alternar o uso deles de acordo com os requisitos do projeto no qual vai trabalhar. O Flask você pode utilizar em projetos pequenos, que não necessitam de uma interface administrativa para cadastrar ou atualizar dados, como sites one-page, APIs RestFul ou qualquer outro projeto com traços dinâmicos de menor complexidade. Já o Django é mais indicado para projetos maiores e mais robustos, que necessitam de uma interface administrativa completa, gerenciamento de usuários, cache, etc, uma vez que ele já vem “de fábrica” com todos estes recursos disponíveis. O Django é uma excelente escolha caso você pretenda seguir carreira no mercado de Python, já que a maioria das ofertas de emprego no mercado de python para web exigem experiência com Django de pelo menos um ano.

Como configurar o Django com Apache

Cadastro e autenticação de usuários no Django – em video

Como fazer upload de imagens no Django Framework

Onde hospedar meus projetos em Python

Pois bem, o melhor lugar para hospedar seus projetos em python é em um servidor Cloud ou VPS, mas verdade seja dita: Você não vai encontrar um host de qualidade e com preço acessível aqui no Brasil para hospedar seus projetos em Python. Triste realidade, mas é verdade. Na maioria das vezes os preços são elevados e o custo-benefício é baixo quando comparamos com serviços gringos. Por isso mesmo eu escolhi hospedar meus projetos em um host fora do Brasil. Assim, elaborei um pequena lista de serviços de hospedagem bastante consolidados lá fora e com grande adoção entre os desenvolvedores mais exigentes.

  • Digital Ocean
    • O serviço de VPS deles é altamente indicado para desenvolvedores e a maioria dos planos possui SSD incluso. O plano mais básico é de $ 5,00 / mês e oferece 20 GB de HD, 1 TB de transferência e 512MB 1GB de memória RAM. Acesso SSH total a nível de usuário root. Ótima escolha para começar.
  • Linode
    • O plano mais básico custa $ 10,00 / mês e oferece 1GB de RAM, 24GB SSD, 2TB de transferência. Possui um ótima interface de linha de comando o linode-cli.
  • Heroku
    • O Heroku é um ótimo serviço também, e tem um plano free pra testes, mas com pouquíssimos recursos disponíveis.
  • Webfaction
    • O Webfaction é sensacional, uma das vantagens é que você não precisa se preocupar em configurar servidor, instalar apache, mysql, etc, pois tudo isso já está feito. Com isso você mantém seu foco na aplicação. No painel, você pode escolher entre um infinidade ferramentas como Rails, Django, Flask, WordPress, etc. O plano mais básico custa $ 10,00 / mês e oferece 1GB de RAM, 100GB SSD e 1TB de transferência.
  • Vultr
    • Atualmente estou utilizando os serviços da Vultr e confesso que estou bastante satisfeito. Trata-se de um ótimo custo-benefício. Eles têm um plano de $ 2,50 / mês, que oferece um servidor com 512 MB de RAM e acesso root total por SSH; a velocidade de escrita no SSD da Vultr é superior àquela que ocorre nos discos da Digital Ocean e o suporte é bastante ágil. Estou tendo uma ótima experiência com eles.

Obviamente os preços estão em dólar e você vai precisar de um cartão internacional. Caso não possua cartão internacional, existem serviços de cartão internacional na modalidade pré-pago muito bons. Um deles, que eu recomendo, é o Conta Super. Você cria uma conta no serviço e eles geram um cartão virtual pra você, para compras feitas exclusivamente na internet. Você pode fazer a recarga de créditos via boleto ou transferência bancária. O Nubank também é um ótimo cartão, pois você não paga anuidade e pode fazer suas compras em dólar (Tenho cerca de 10 convites que posso enviar à quem tiver interesse. Para isto, basta que me envie a solicitação pelo formulário de contato deste site).

Então é isso gente, qualquer dúvida, só postar aí nos comentários. Aproveitando o gancho, eu preparei recentemente uma video aula para o canal, na qual mostro como Como usar o Django com Apache, não deixa de conferir.

Like
4