MVC e os fundamentos do Django

votos
8

Muito novo para esta cena e tentando encontrar alguma documentação para adotar as melhores práticas. Estamos construindo uma bastante grande site de conteúdo que será composto por vários catálogos de mídia e eu estou tentando encontrar alguns dados comparáveis ​​/ modelos de arquitetura para que possamos ter uma idéia melhor da abordagem devemos usar usando uma estrutura que nunca fez uso de antes. Qualquer visão / ajuda seria muito apreciada!

Publicado 12/12/2008 em 21:22
fonte usuário
Em outras línguas...                            


3 respostas

votos
16

"Dados / modelos de arquitetura para que possamos ter uma idéia melhor da abordagem devemos usar usando uma estrutura que nunca fez uso de antes"

Django impõe melhores práticas em você. Você não tem um monte de opções e não pode fazer um monte de erros.

MVC (enquanto uma nobre aspiração) é implementado como segue:

  • Os dados são definidos em arquivos "models.py" usando os modelos Django ORM.
  • arquivo urls.py mapeia URL para visualizar função. Escolha o seu URL com sabedoria.
  • Ver função faz todo o processamento, fazendo uso de modelos e métodos em modelos
  • Apresentação (via templates HTML) invocado por função Visualização. Essencialmente nenhum processamento pode ser feito na apresentação, iteração apenas leve e tomada de decisão

O modelo é definida para você. Ater apenas ao que Django faz naturalmente e você vai ser feliz.

Arquitetonicamente, você geralmente tem uma pilha assim.

  • Apache faz duas coisas.

    • serve conteúdo estático direta e imediatamente
    • mãos URL dinâmico para Django (via mod_python, mod_wsgi ou mod_fastcgi). Django aplicativos do mapa de URL para ver as funções (que o acesso ao banco de dados (via ORM / modelo) e apresentar através de modelos.
  • Banco de dados usado por funções de vista Django.

A arquitetura é bem definido para você. Ater apenas ao que Django faz naturalmente e você vai ser feliz.

Sinta-se livre para ler a documentação do Django . É excelente; talvez o melhor que existe.

Respondeu 12/12/2008 em 21:37
fonte usuário

votos
5

em primeiro lugar, esquecer tudo mantra MVC. é importante ter uma boa estrutura em camadas, mas MVC (como definido originalmente) não é um, ele era um modular estrutura, onde cada GUI módulo é dividido nestas submódulos de árvores. nada para usar na web aqui.

em desenvolvimento web, é realmente vale a pena ter uma estrutura em camadas, onde a camada mais importante é o armazenamento / modelagem de um, o que veio a ser chamado camada de modelo . em cima disso, você precisa de algumas outras camadas, mas eles não são realmente qualquer coisa como pontos de vista e os controladores no mundo da GUI.

as camadas Django são aproximadamente:

  • armazenamento / modelagem: models.py, obviamente. tentar colocar a maioria dos conceitos 'trabalhar' lá. todas as relações, todas as operações devem ser implementadas aqui.
  • despachando: principalmente em urls.py. aqui você transformar o seu esquema de URL para caminhos de código. pense nisso como uma instrução switch grande (). tente difícil ter URLs legíveis, que mapeiam as intenções do usuário. ele vai ajudar muito a adicionar novas funcionalidades ou novas maneiras de fazer as mesmas coisas (como uma interface AJAX mais tarde).
  • encontro: a maioria das funções de visualização, vossa e os pré-construídos views genéricas. aqui você simplesmente reunir todas as dos modelos para satisfazer um pedido do utilizador. surpreendentemente em muitos casos, ele só tem que escolher uma única instância do modelo, e tudo o mais pode ser recuperada a partir de relacionamentos. para essas URLs, uma visão genérica é suficiente.
  • apresentação: os modelos. Se a vista dá-lhe os dados que você precisa, é simples o suficiente para transformá-lo em uma página web. é aqui onde você vai agradecer que as classes de modelo tem bons assessores para obter qualquer tipo de dados relevantes a partir de qualquer determinada instância.
Respondeu 12/12/2008 em 22:12
fonte usuário

votos
0

Para entender fundementals Django e os django assumir MVC, consulte o seguinte: http://www.djangobook.com/

Como ponto de partida para chegar as suas mãos sujas com ... "... tentando encontrar alguns dados comparáveis ​​/ modelos arquitetônicos"

Aqui está uma maneira rápida e suja de fazer engenharia reversa de um banco de dados para obter um arquivo models.py, que você pode então inspecionar para ver como Django iria lidar com isso.

1.) obter um diagrama ER que se aproxima o seu alvo. Por exemplo algo como isto http://www.databaseanswers.org/data_models/product_catalogs/index.htm

2.) criar um script sql do diagrama de er e criar o banco de dados, eu sugiro Postgre, como alguns MySQL tipo de tabela não terá forgien restrições de chave, mas em um MySQL pitada ou SQLITE vai fazer

3.) criar e configurar uma aplicação Django para usar esse banco de dados. Em seguida, execute: inspectdb manage.py python

Esta, pelo menos, dar-lhe um arquivo models.py que você pode ler para ver como Django tenta modelá-lo.

Observe que o comando inspecionar se destina a ser um atalho para lidar com banco de dados legado ao desenvolver no Django, e como tal não é perfeita. Não deixe de ler o seguinte antes de tentar esta: http://docs.djangoproject.com/en/dev/ref/django-admin/#ref-django-admin

Respondeu 12/12/2008 em 23:56
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more