Pergunta

Qualquer um poderia recomendar um bom guia / tutorial / artigo com dicas / orientações em como organizar e partição de um grande projeto de Django?

Eu estou procurando conselhos no que fazer quando você precisa para começar factorizing os arquivos únicos iniciais (models.py, urls.py, views.py) e trabalhar com mais do que algumas dezenas de entidades.

Foi útil?

Solução

Cada "aplicação" deve ser pequeno - uma única entidade reutilizável além de algumas tabelas associadas. Temos cerca de 5 mais / menos 2 mesas por modelo de aplicação. A maioria dos nossos meia dúzia de aplicações são menores do que 5 mesas. Um tem zero tabelas no modelo.

Cada aplicação deve ser projetado para ser um conceito reutilizável. No nosso caso, cada aplicação é um pedaço do site em geral; as aplicações podem ser removidos e substituídos separadamente.

Na verdade, essa é a nossa estratégia. Como os nossos requisitos expandir e amadurecer, nós podemos remover e substituir as aplicações de forma independente um do outro.

Não há problema em ter aplicações dependem uns dos outros. No entanto, a dependência deve ser limitado às coisas óbvias como "modelos" e "formas". Além disso, os aplicativos podem depender dos nomes na URL de cada outra. Consequentemente, o seu chamado URL de deve ter uma forma como "aplicativo-view" para a função reverse ou a etiqueta {% url %} pode encontrá-los corretamente.

Cada aplicação deve conter o seu próprio comandos de lote (geralmente através de um comando formal que pode ser encontrado pelo script django-admin.

Finalmente, tudo o que é mais complexo do que um modelo simples ou forma que é compartilhada provavelmente não pertence a qualquer um dos aplicativos, mas precisa ser uma biblioteca compartilhada separado. Por exemplo, usamos XLRD , mas partes envoltório de que em nossa própria classe por isso é mais como o built-in módulo csv. Este invólucro para XLRD não é uma parte apropriada de qualquer aplicação de um, a ele é um módulo separado, fora das aplicações Django.

Outras dicas

Eu encontrei-o para ser útil para dar uma olhada em grandes projetos Django open-source e tomar nota de como esse projeto faz isso. o site do Django tem uma boa lista de projetos open-source:

http://code.djangoproject.com/wiki/DjangoResources#Open-SourceDjangoprojects

Como o Google (embora a maioria deles são menores add-in template tags e Middleware:

http://code.google.com/hosting/search?q= etiqueta: django

Claro, só porque um projeto faz isso de uma maneira não significa que essa maneira é a maneira direita (ou a maneira errada). Alguns desses projetos são mais bem sucedidos do que outros.

No final, a única maneira de realmente aprender o que funciona eo que não funciona é a experimentá-lo sozinho. Todas as dicas e sugestões no costuma mundo ajuda a menos que você experimentá-lo sozinho, mas eles podem ajudar você a começar na direção certa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top