Archive

Posts Tagged ‘acoplamento’

Aplicações Plugáveis com Django.

Olá pessoas,

Como prometido no último post Projetos vs. Apps  vou lhes mostrar como tornar suas aplicações de um projeto plugáveis, e assim obedecer aquele conceito de DRY (Don’t repeat yourself) . 
Sem muita enrolação, até por que não é preciso pois o processo é bem simples.

1º Organização das URLs 

antes de mais nada eu aconselho que você organize seu arquivo urls.py da seguinte maneira:

separe as urls de acordo com a aplicação
ex:     galeria de imagens e noticias

# galeria
(r’^/galeria/‘,’views.all_albuns’),

(r’^/galeria/imagens’,’views.all_pics’),

#noticias

(r’^/noticias/‘, ‘noticias.views.all_news’),

(r’^/noticias/(?P<slug>[\w_-]+)’,’noticias.views.news’)

Com o código organizado fica mais fácil de vizualizar e mover nossas urls.

Percebam que minha url de noticias é antecedida de “noticia/”, assim como a de galeria é de “galeria/

2º includes

logo abaixo de #galeira adicione o seguinte código:

 (r’^galeria/’, include(‘galeria.urls’)),

abaixo de #noticias adicione o seguinte código:

 (r’^noticias/’, include(‘noticias.urls’)),

E por último mas não menos importante

3º criando o Urls.py de noticias e galeria

Não se esqueça dos imports tradicionais de quando se constrói um arquivo de urls. Crie um arquivo de url (urls.py) dentro da pasta da sua aplicação

noticias/urls.py

urlpatterns = patterns(‘noticias.views’,

# localhost/noticias

(r’^noticias/$’,all_news’),
#localhost/noticias/slug
(r’^noticias/(?P<slug>[\w_-]+)/$’, ‘noticia’),
)

Perceba que as urls deste arquivo são as mesmas do arquivo de urls do projeto, logo volte ao arquivo de urls do projeto e remova as urls de lá deixando somente  “(r’^noticias/’, include(‘noticias.urls’)),” , ou seja copie do arquivo (urls.py) do projeto para o arquiv (urls.py) da aplicação, lembrando de deixar somente o include. Faça o mesmo com a galeria.

Assim o arquivo de url deve ficar da seguinte forma:

(r’^galeria/’, include(‘galeria.urls’)),

(r’^noticias/’, include(‘noticias.urls’)),

para adicionar suas aplicações a outros projetos, basta adicionar estes “includes” no urls.py do projeto.

No github existe vários repositórios com algumas aplicações plugáveis e úteis, pronto para serem usadas, faça o mesmo com as suas divide-as com o mundo, assim todos crescemos juntos e sem ficar reescrevendo linhas e linhas de código, sem falar que fica muito simples de fazer manutenção de apps desacopladas de projetos.

Por hoje é só, e até a próxima,

Gil.

Categorias:Django Tags:, ,