Prós e contras do Django

Nota perev.: este artigo é destinado principalmente para aqueles que estão apenas escolhendo uma estrutura para desenvolvimento web. É improvável que os desenvolvedores experientes do Django aprendam algo novo.



O Django é descrito como "uma estrutura da web para perfeccionistas com prazos". Foi criado para passar de protótipos para serviços prontos o mais rápido possível.


A estrutura ajudará a desenvolver um aplicativo CRUD chave na mão. O Django não precisa reinventar a roda. Ele funciona imediatamente e permite que você se concentre na lógica de negócios e em produtos para pessoas comuns.


Prós do Django


O princípio de "tudo incluído" ("baterias incluídas")


A frase "tudo incluído" significa que a maioria das ferramentas para criar um aplicativo faz parte da estrutura e não vem em bibliotecas separadas.


O Django contém uma enorme quantidade de funcionalidades para resolver a maioria das tarefas de desenvolvimento da web. Aqui estão alguns dos recursos de alto nível do Django que você precisará procurar separadamente se preferir um micro framework:


  • ORM
  • Migrações de banco de dados
  • Autenticação de usuário
  • Painel do administrador
  • Formulários

Estrutura padronizada


O Django como uma estrutura define a estrutura do projeto. Ajuda os desenvolvedores a entender onde e como adicionar novas funcionalidades.


Graças à mesma estrutura para todos os projetos, é muito mais fácil encontrar soluções prontas ou obter ajuda da comunidade. Um grande número de desenvolvedores entusiasmados ajudará a lidar com qualquer tarefa muito mais rapidamente.


Django Apps


Os aplicativos no Django permitem dividir um projeto em várias partes. Os aplicativos são instalados adicionando as configurações.INSTALLED_APPS . Essa abordagem facilita a integração de soluções chave na mão.


Centenas de módulos e aplicativos universais acelerarão muito o desenvolvimento. Dê uma olhada na lista deles em djangopackages.org .


Seguro por padrão


O Django é seguro e inclui mecanismos para impedir ataques comuns, como injeção SQL (XSS) e falsificação de solicitação entre sites (CSRF). Você pode ler mais sobre isso no manual de segurança oficial .


Estrutura REST para criar uma API


O Django REST Framework, frequentemente abreviado para "DRF", é uma biblioteca para criação de APIs. Possui uma arquitetura modular e personalizável que funciona bem para criar APIs simples e complexas.


No DRF, as políticas de autenticação e permissão estão disponíveis imediatamente. Ele vem com classes base para operações CRUD e um utilitário interno para testar a API desenvolvida.


Estrutura da API GraphQL


As APIs REST grandes geralmente exigem um grande número de solicitações para obter todos os dados necessários. O GraphQL é uma linguagem de consulta que facilita a troca de dados relacionados. Leia mais sobre os conceitos básicos do GraphQL na documentação oficial .


O Graphene-Django facilita a adição da funcionalidade apropriada ao seu projeto. Os modelos, formulários, autenticação, políticas de permissão e outras funcionalidades do Django podem ser usados ​​para criar a API GraphQL. A biblioteca também vem com um utilitário para testar o resultado.


Desvantagens do Django


Django orm


O Django ORM hoje é significativamente inferior ao SQLAlchemy mais recente.


O Django ORM é baseado no modelo Active Record, que é pior que o modelo de Unidade de Trabalho usado no SQLAlchemy. Na prática, isso é expresso no fato de que, nos modelos do Django, eles podem "salvar" a vontade e as transações são desativadas por padrão. Você pode ler mais sobre isso no artigo “Coisas que eu não gosto no Django” .


Django está se desenvolvendo lentamente


Django é uma estrutura grande e monolítica. Isso permite que a comunidade desenvolva centenas de módulos e aplicativos genéricos, mas diminui a velocidade de desenvolvimento do próprio Django. Além disso, a estrutura deve suportar compatibilidade com versões anteriores, por isso está se desenvolvendo de forma relativamente lenta.


Conclusão: devo escolher o Django?


Embora o Django ORM não seja tão flexível quanto o SQLAlchemy, e um grande ecossistema de módulos e aplicativos reutilizáveis ​​diminua o desenvolvimento da infraestrutura, obviamente o Django deve ser o primeiro candidato ao papel de uma estrutura python.


Estruturas leves alternativas, como o Flask, embora permitam que você seja mais livre que o Django no ecossistema e na configuração, podem exigir tempo extra para pesquisar / criar bibliotecas e funcionalidades adicionais a longo prazo.


A estabilidade do Django e da comunidade ao seu redor cresceu para um tamanho inimaginável desde seu primeiro lançamento. A documentação oficial e os tutoriais sobre a estrutura são alguns dos melhores do gênero. E com cada nova versão do Django continua a crescer oportunidades.

Source: https://habr.com/ru/post/pt473042/


All Articles