Django Framework, Python

Django ou Flask, qual devo usar?

12 de novembro de 2015
Django ou Flask, qual devo usar?

Todo bom programador deve dominar mais que uma linguagem de programação e consequentemente, mais de um framework de desenvolvimento, pois quanto mais ferramentas tiver à sua disposição, mais fácil será encontrar a melhor forma de resolver um problema. Afinal, nem sempre é prático usar a mesma ferramenta em toda e qualquer situação, embora seja possível. Este foi um dos motivos que me levaram a adotar o Python como segunda linguagem de desenvolvimento web e que me trouxe em um determinado momento, a seguinte indagação em torno de seus frameworks mais conhecidos. “Django ou Flask, qual devo usar?”

Pois bem, antes eu queria dizer porque escolhi Python. O Python é uma linguagem indiscutivelmente incrível, que dá ao programador a possibilidade de resolver problemas com uma agilidade pouco praticável em linguagens como PHP ou JAVA, para citar um exemplo. Python mantém o foco, principalmente, na criação de um código altamente legível e fácil de manter. Como uma linguagem interpretada de alto nível, python é também bastante indicada para iniciantes, uma vez que possui uma baixa curva de aprendizado.

Como engenheiro de produção, eu aprendi o quanto é importante ter um leadtime reduzido dentro de um ciclo de desenvolvimento de qualquer produto. Pra conseguir isso, eu preciso de ferramentas que viabilizem uma entrega mais ágil. Neste caso, python é uma boa escolha como ferramenta.

Em um exemplo simples, é possível notar a natureza ágil da linguagem Python. 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. Por isso mesmo é fácil entender porque tantos desenvolvedores web iniciantes no mundo python estão sempre com aquela velha dúvida martelando na cabeça. “Django ou Flask, qual devo usar?”. Se você está passando por isso agora, talvés seja uma boa idéia dá uma olhadinha nas próximas linhas. Quem sabe isto não seja algo determinante na sua escolha entre qual deles usar para começar.

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 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, API’s 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 mundo python para web exigem experiência com Django.

Como configurar o Django com Apache

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

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 com um custo-benefício muito baixo. Por isso mesmo eu escolhi hospedar meus projetos em um host fora do Brasil. Com isso, 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
    • Este é o que eu uso e recomendo. O serviço de VPS deles é altamente indicado para desenvolvedores, a maioria dos planos possui SSD, sendo que o plano mais básico de $ 5,00 / mês e oferece 20 GB de HD, 1 TB de transferência e 512MB de memória. 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.

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 e este cartão você pode recarregar via boleto ou transferência bancária. Ótima alternativa pra quem quer fugir das taxas abusivas do cartão internacional.

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 :-p.

Like
2

Veja também

  • Saulo Morais

    Excelente artigo. Estou estudando Django e o pessoal de um grupo que participo me indicou o Flask.

    • luisfredgs

      O Flask é bem bacana mesmo, eu particularmente gosto muito e é minha escolha preferencial quando o projeto é de pouca complexidade e não exige muitos recursos. Gosto de contar com o Django apenas para aplicações maiores.

  • Pedro Cavalcanti

    Muito bacana!! Ando muito revoltado com essas plataformas de e-commerce disponíveis hoje no Brasil e decidi criar a minha propria. Daí acabei parando aqui hehe. Pelo visto o Django vai me fazer feliz. Só não sei se esses serviços de hospedagens dão conta.

    • Marcelo Livramento

      Olá, você seguiu em frente com o projeto do ecommerce? se sim me passe seu contato ou o link do projeto.