organização de projeto

36 views
Skip to first unread message

Diego Henrique Oliveira

unread,
Jul 27, 2010, 9:18:59 AM7/27/10
to django...@googlegroups.com
Pessoal,

Eu estive procurando uma boa maneira de organizar meus projetos em django, basicamente o que eu queria era manter as apps separadas do resto da aplicação. Por fim cheguei a este modelo.

Na pasta do projeto eu separei minha aplicação desta forma:
    -> apps: aqui vai todas as apps do projeto
        -> blog: app do blog
        -> articles: app de artigos longos
        -> videos: app de videocasts
    -> public: aqui vão os arquivos publicos (é o DocumentRoot do apache)
        -> media: arquivos de media
        -> videos: videocast enviados
    -> templates: aqui vão as templates do projeto
        -> blog: templates do blog
        -> articles: templates de articles
        -> videos: templates de videos

Eu gostei muito do django me dar a flexibilidade de trabalhar nesta estrutura, mas queria saber de vocês se vcs já fizeram algo do tipo (mudar a estrutura recomendada no tutorial oficial) ou se vcs tem criticas a este modelo.

ps.: Esta é a organização que estou montando pro projeto do meu site pessoal. :)

Abraços.

Diego

Vinicius Mendes

unread,
Jul 27, 2010, 10:08:25 AM7/27/10
to django...@googlegroups.com
Minha organização é essa:

> project
---> files (arquivos como especificações, contratos, etc.)
---> layout (arquivos utilizados no desenvolvimento do layout. PSDs e afins)
---> montagem (trabalho com montadores de XHTML, CSS e Javascript
externos em alguns projetos, aqui fica a montagem feita por estes
terceiros)
---> deploy (fabfile, index.wsgi, .htaccess e afins.)
---> code (Aqui vai o código do projeto
------> src (Arquivos *.py)
---------> apps (Aqui vão as apps do projeto)
------------> blog
------------> videos
------------> ...
---------> settings (pasta contendo vários arquivos de settings para
organizar melhor: db.py, apps.py e etc. Acho que um único arquivo de
settings.py fica muito confuso)
------> media (CSS, JS, arquivos estáticos em geral)
------> templates

No momento do deploy eu pego apenas a pasta code. Todas as outras
ficam de fora, já que são mais administrativas e são desnecessárias ao
projeto em produção.

Atenciosamente,
Vinicius Mendes
Solucione Sistemas
vini...@solucione.info

2010/7/27 Diego Henrique Oliveira <diegoho...@yahoo.com.br>:

> --
> Django Brasil em Google Groups
> <http://groups.google.com.br/group/django-brasil>
> Associe-se à Python Brasil e suporte nossa comunidade!
> <http://associacao.python.org.br/>

George Ribeiro

unread,
Jul 27, 2010, 6:17:47 PM7/27/10
to django...@googlegroups.com
Boa noite Vinicius, muito boa a idéia da sua organização, mas tenho
uma dúvida. Como fica
o versionamento de arquivos? você coloca todas as pastas no
versionador(git, svn, mercurial) ou
apenas a pasta code? Se for completo como faz o deploy? Usa
versionador no deploy?

Obrigado.

Vinicius Mendes

unread,
Jul 27, 2010, 7:17:42 PM7/27/10
to django...@googlegroups.com
Todo o projeto fica no versionador. Eu uso SVN e com ele eu posso
pegar apenas uma pasta do repositório. No deploy eu uso o fabric com
um script que gera uma tag do projeto automaticamente, e faz o
checkout da pasta code dessa tag no servidor.

Atenciosamente,
Vinicius Mendes
Solucione Sistemas
vini...@solucione.info

2010/7/27 George Ribeiro <georg...@gmail.com>:

George Ribeiro

unread,
Jul 27, 2010, 7:26:13 PM7/27/10
to django...@googlegroups.com
Obrigado pela resposta Vinicius. Vou estudar o fabric e usar em meus
deploys, como também
verificar se o meu versionador no momento (Git) permite mandar apenas
uma pasta para o deploy.

Abração.

Francisco Souza

unread,
Jul 28, 2010, 7:32:03 AM7/28/10
to django...@googlegroups.com
Salve George :)

O pessoal que fez o deressaca [1] utilizou o Fabric com Git para fazer o Deploy. Dê uma olhada no fabfile [2].

[1] http://deressaca.net
[2] http://github.com/henriquebastos/deressaca/blob/master/src/fabfile.py

Abraços,
Francisco Souza
Software developer at Giran and also full time
Open source evangelist at full time

English: http://www.franciscosouza.net
Portuguese: http://www.franciscosouza.com.br
Twitter: @franciscosouza
+55 27 3026 0264


2010/7/27 George Ribeiro <georg...@gmail.com>

--

George Ribeiro

unread,
Jul 28, 2010, 11:22:12 AM7/28/10
to django...@googlegroups.com
Obrigado Francisco. Será de grande ajuda em meus próximos deploys. Valeu.
Abraço.


--
George Ribeiro
blog: blog.georgeribeiro.net
djangopeople: djangopeopple.net/georgeribeiro
twitter: @georgepython

Rodrigo Pinheiro Matias

unread,
Jul 28, 2010, 1:50:07 PM7/28/10
to django...@googlegroups.com
Aqui organizamos o trabalho de uma forma bem modularizada

[CORE] {
-->[RH] {
----> [Ponto]
----> [Pessoal]
----> [Anotações]
----> [static]
------> [js]
------> [images]
------> [templates]
   }
--> ...
}

Sendo que Core é minha aplicação principal tem o seu versionamento próprio, e tenho varias outras sub aplicações cada uma com seu proprio versionador de código e gestor de mundanças, no caso o Redmine + Hg.
> --
> Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
> Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>


--
Rodrigo Pinheiro Matias
Bacharel em Ciência da Computação

Celular
+55 (063) 8111.2080

Telefone em horário Comercial
+55 (063) 3216.7564

Blog
http://rodrigomatias.goware.com.br/blog/

Feed
http://rodrigomatias.goware.com.br/blog/feed/

Twitter
http://twitter.com/rodrigopmatias
Reply all
Reply to author
Forward
0 new messages