Skip to content

Arquitetura do projeto

RodrigoJimmy edited this page May 24, 2012 · 2 revisions

O Django é considerado um superframework, pois é composto de vários frameworks (componentes) menores, como:

  • ORM - Object-relational mapper: possibilita que o desenvolvedor programe utilizando objetos, sem se preocupar com a persistência desses dados no banco de dados relacional.
  • Template System: fornece uma linguagem padrão para a criação de templates HTML, XML, JSON, etc.
  • Administration System: um dos poucos frameworks web que disponibilizam uma interface, gerada quase automaticamente
  • URL dispatcher: cuida do processamento das URLs do sistema, possibilita o uso de URLs amigáveis.
  • Internacionalização: facilita a internacionalização do sistema.
  • Formulários: geração automática de formulários, validações e filtros.
  • Segurança: gerenciamento de autenticação e controle de permissões.
  • Outros componentes: serialização de dados, sistema de testes automatizado, serviço de mensagens (e-mail e mensagens entre usuários do sistema), sistema de cache de objetos, geração de feeds (RSS/Atom), paginação de resultados, etc.

Paradigma MVC

O Django usa o paradigma VMC (Model-View-Controller) para o desenvolvimento de aplicações. Em algumas referências é possível encontrar a sigla MTV (Model-Template-View), que representa basicamente a mesma coisa dita com palavras diferentes.

  • Model: contém a representação dos dados do projeto. É a parte que faz a intermediação do projeto com o banco de dados e também persiste seus objetos. No caso do Django, o sistema de ORM frequentemente é utilizado na criação de classes Model.
  • View: responsável pela visualização do conteúdo no formato adequado. Frequentemente há várias Views para um mesmo Model. No caso do Django, o sistema de Templates é quem cumpre esse papel.
  • Controller: cuida do acesso e da manipulação dos dados do Model, bem como de outras partes que não envolvem o Model diretamente. No Django esse papel é feito por dois componentes: o URL dispatcher e as Views (por isso o MTV).

O Django prefere a convenção do que a configuração, por isso apesar de ser possível personalizar suas funcionalidades ou escrever seus próprios componentes para atuar em diferentes camadas, é preferível seguir as convenções do framework para que, dessa forma, diversos recursos sejam disponibilizados automaticamente pelo Django.

Fonte: "Python e Django, Desenvolvimento Ágil de Aplicações Web", Osvaldo Santana e Thiago Galesi, Ed. Novatec, 1 ed. 2010.

Clone this wiki locally