Back-End

1 set, 2010

Django Admin: criando uma interface de administração

Publicidade

Quem
trabalha com desenvolvimento web precisa apresentar soluções
eficientes, funcionais, rápidas e seguras em um prazo bastante
curto. Quem consegue esse equilíbrio pode atuar em vários projetos
sem se desgastar ou ficar sempre enrolado com a manutenção dos
projetos atuais, o que fecha a porta para novos desafios, além de
ser um fator de perda de motivação. Nesse ponto, um bom framework
pode ajudar muito em sua produtividade.

A
escolha de um framework é bastante particular, existem dezenas de
ótimos frameworks disponíveis no mercado, desenvolvidos nas mais
variadas linguagens de programação, como Django (Python), Rails
(Ruby), Symfony (PHP), entre diversos outros. Cada desenvolvedor
escolhe o seu de acordo com o nível de conhecimento em cada
linguagem de programação, assim como as facilidades que cada
framework oferece, além de segurança e estabilidade.

O
Django é um framework web desenvolvido em Python, de alto nível,
que estimula o desenvolvimento rápido, limpo e eficiente. Se
beneficiando do modelo MVC, é possível desenvolver aplicações das
mais simples às mais complexas com um ótimo aproveitamento de código e
seguindo os princípios DRY
(Don’t
Repeat Yourself –
Não seja repetitivo). Além disso, ele tem um recurso que chama a atenção, além de ser um grande
aliado para projetos com prazos apertados: um ambiente de Admin praticamente pronto!

A maioria dos aplicativos
web seguem a lógica de possuir um ambiente externo, acessado pelos
usuários, além de um ambiente interno, de administração, acessado
pelos administradores daquela aplicação para fazer alterações,
inserir notícias, adicionar ou remover usuários entre as outras
tarefas de retaguarda. O desenvolvimento desse ambiente de
administração consome um tempo bastante considerável em qualquer
projeto e precisa ser simples, eficiente e estável para que seu
cliente consiga dar manutenção ao projeto que você desenvolveu.

O ambiente de Admin oferecido pelo Django, além de praticamente pronto, possui uma
interface bastante intuitiva, além de permitir trabalhar com
permissões de acesso e customizar determinadas telas para que seu
cliente consiga dar manutenção ao sistema. Além disso, o Admin do
Django cria um log, registrando todas as alterações realizadas
pelos usuários.

Esse
ambiente, por padrão, já possui uma interface bastante intuitiva e
simples de trabalhar, como mostram as imagens abaixo:

Os
exemplos foram extraídos desse
tutorial
,
que explica como criar telas no Admin do Django. Ao trabalhar com seu
poderoso ORM, é possível fazer praticamente qualquer cruzamento no
banco de dados (o Django suporta nativamente MySQL, PostgreSQL e
Oracle), e o tempo que você pode poupar ao utilizar esse sistema de
administração, que já está pronto, é inestimável e ajuda no
orçamento de qualquer projeto, além de deixar seu cliente feliz em
oferecer uma interface funcional para ele fazer suas alterações sem
depender de você.

Além
do Django Admin nativo e pronto, como vimos acima, é possível obter
uma interface ainda mais agradável, eficiente e com uma navegação
melhorada. Para isso, basta utilizar módulos externos, como o
django-grappelli,
que oferece modificações visuais e estruturais ao Django Admin
padrão, agregando novas funcionalidades e um layout mais atraente.

Para
instalar o django-grappelli, após baixar o .tar.gz, descompacte
dentro de seu projeto Django. Se preferir, use a versão SVN:


svn checkout http://django-grappelli.googlecode.com/svn/trunk/grappelli/ grappelli

Depois,
basta habilitar no settings.py
o grappelli, adicionando a seguinte linha no bloco INSTALLED_APPS:

....

'grappelli',

'django.contrib.admin',

....

O
grappelli precisa estar habilitado antes do django.contrib.admin,
senão a interface ficará toda desconfigurada.

É
necessário também verificar se o bloco TEMPLATE_CONTEXT_PROCESSORS
está conforme abaixo, também no settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.auth",
"django.core.context_processors.request",
)

O
Grappelli foi construído como uma alternativa ao admin, com algumas
modificações nos módulos e também nos arquivos de JavaScript, que
precisam estar presentes e acessíveis para que funcionem corretamente.
O Grappelli inclui tanto o jQuery quanto dezenas de outros módulos
que o fazem diferenciado, inclusive o TinyMCE para habilitar um
editor WYSIWYG. Lembre-se também de copiar o conteúdo do diretório
grappelli/media para o mesmo local dos arquivos estáticos, como
abaixo:

cp -R /path/para/grappelli/media /path/para/seu/admin/media

http://localhost:8000/static/admin/js/grappelli.min.js

A
URL acima supõe que você está usando o diretório /static/ para
guardar seus arquivos estáticos. Se aparecer o conteúdo do arquivo
do Grappelli, então está tudo configurado corretamente.

Se
tudo der certo, você terá uma interface de admin como a da imagem
abaixo:

Para
utilizar o editor TinyMCE automaticamente nos campos tipo TextField,
é necessário acrescentar um complemento na classe media do Admin,
como abaixo:

class Media:

js = ('http://seudominio/static/admin/tinymce/jscripts/tiny_mce/tiny_mce.js','http://seudominio/static/js/tinymce_setup.js',)

Isso
vai acrescentar o código JavaScript necessário para habilitar o
editor TinyMCE nas telas do admin. Com isso, automaticamente os campos
do tipo TextField ficarão WYSIWUG.

Em
poucos minutos é possível seguir todos os procedimentos acima e
deixar o Django mais agradável, surpreendendo assim os usuários de
seu projeto. Se tivesse de fazer tudo isso manualmente, seriam muitas
e muitas horas de trabalho para que tudo ficasse do mesmo jeito.

O
Grappelli respeita a internacionalização do Django e suporta
perfeitamente o português do Brasil, além de outros idiomas. As
mudanças são radicais e vão desde a tela de login até a exibição
melhorada dos campos internos, facilitando inclusive a criação de
novos layouts.

O
Django é um framework estável, seguro, utilizado em pequenos e
grandes projetos (veja um show-room de projetos em Django no Django
Sites
)
e auxilia no desenvolvimento rápido de aplicações complexas.
Resumindo, é divertido trabalhar com Django, além de a linguagem
Python oferecer uma curva de aprendizado bastante baixa. Se você
está procurando um framework para seus projetos, inclua o Django em
sua lista de comparações e faça alguns testes com ele. Siga o
tutorial
disponível
em português no site do Django Brasil, onde você poderá comprovar
como é fácil e rápido criar aplicações web com esse framework.

Além
disso, você tem à disposição uma série de Snippets
(http://djangosnippets.org/),
centenas de projetos de melhorias, como o Django Grappelli que foi
apresentado neste artigo, um CMS como o
http://www.django-cms.org/en/,
entre outros projetos de interesse geral. Está muito mais fácil
encontrar hospedagem para Django a preços bem competitivos, tudo
isso facilita o rápido crescimento desse framework.

O
lema do Django diz tudo: “Um framework para os perfeccionistas com
prazos”.