Características do Django

Django é uma linguagem modular, nesse contexto, o termo "modular" refere-se à capacidade de dividir um projeto em partes menores e mais gerenciáveis, conhecidas como "aplicativos". Isso facilita o desenvolvimento, a manutenção e a escalabilidade de projetos complexos.

Servidor embutido: Django tem um servidor de desenvolvimento integrado, ou seja, inclui um servidor web embutido que pode ser usado durante a fase de desenvolvimento do projeto, sem a necessidade de configurar ou instalar um servidor web externo, como Apache ou Nginx. Geralmente abre na porta: http://127.0.0.1:8000/
Esse servidor não é projetado para produção porque não é otimizado para lidar com grande tráfego ou fornecer segurança robusta. 
 

Um aplicativo no Django é uma unidade funcional que pode ser reutilizada em diferentes projetos. Cada aplicativo é uma coleção de módulos Python que juntos executam uma tarefa específica. Por exemplo, um aplicativo pode ser responsável por gerenciar a autenticação de usuários, enquanto outro pode lidar com o blog.

As principais características do Django são:

  • Framework baseado em Python: Totalmente desenvolvido e usado com Python.
  • Arquitetura MTV (Model-Template-View): Organiza o código em três camadas principais:
    • Model: Gerencia a lógica de dados e comunicação com o banco de dados.
    • Template: Define como os dados são apresentados ao usuário.
    • View: Processa as requisições e envia os dados para os templates.
  • ORM (Object-Relational Mapping): Permite interagir com bancos de dados usando código Python em vez de SQL.
  • Sistema de autenticação robusto: Inclui login, logout, registro e permissões de usuário.
  • Administração automática: Gera automaticamente um painel administrativo para gerenciar dados e usuários.
  • Segurança embutida: Protege contra ataques comuns, como SQL Injection, XSS, e CSRF.
  • Extensível e modular: Suporta integração com bibliotecas externas e facilita a construção de projetos reutilizáveis.
  • Escalabilidade: É adequado tanto para pequenos projetos como para grandes aplicações.