by Stiod Desenvolvimento Web
Assine nosso RSS

Archive for the 'Python' Category

No Gravatar

Criamos uma página para o projeto Djapian.

\o/

Djapian - Search API for Django with Xapian

Para quem não conhece, o Djapian, é um aplicativo que você pode incorporar à sua própria solução afim de permitir buscas nos textos, essencial em aplicativos como: Wiki, Blog, CMS e todo tipo de projeto que envolva colaboração de usuários em informação.

Acesse esse post para ver um artigo completo sobre o Djapian.

Mudar o nome da aplicação no admin do Django

Rafael SDM Sierra
No Gravatar

Atenção! Pode conter links inúteis

É incrivel, passei meus ultimos um ano e meio trabalhando em empresas de terceiros, porém, eu não sentia aquele prazer que só um verdadeiro programador sente ao programar.

Mãs! Tudo mudou quando decidimos (eu e mais 4 socios) que era hora de tocar a empresa seriamente, então eu sai da empresa onde trabalhava e segui viagem para minha própria empresa.

Bom, enrolei muito já, vamos ao que interessa.

Você já deve ter se revoltado com o Django, mais precisamente com o aplicativo Admin, quando você era obrigado a aceitar uma versão capitalizada (no sentido da primeira-letra-maiúscula, e não financeiro) do nome do seu aplicativo na tela inicial da administração.

Porém, agora sei que é possivel modificar esse nome que fica com fundo azul, tudo graças a uma introspecção no código do Django, algo que eu dificilmente faria trabalhando para terceiros (esse foi o motivo de eu ter escrito aquelas abobrinhas ali em cima :P), e ao que tudo indica, essa "funcionalidade", não está documentada (pelo menos não foi fácil encontrar informações sobre isso, tanto que devo um link aqui).

Pra resolver esse problema é simples, basta editar o model desejado e adicionar dentro da classe Meta um atributo chamado "app_label" (repare que ele não se encontra na documentação), e com isso o model será agrupado no nome que você der para ele, o interessante, é que você pode agrupar varios aplicativos dentro de uma só tabela, desde que todos os models tenham o mesmo nome no app_label.

Mas o mais bizarro mesmo, é que você pode modificar o app_label de outros aplicativos que não fazem parte do seu projeto, por exemplo, ao adicionar as seguintes linhas em algum model.py seu:

  1.  
  2. from django.contrib.auth.models import User
  3. User._meta.app_label = "AWAAAY"
  4.  

Você vai jogar o modelo User pra dentro da tabela AWAAAAY.

Só gostaria de deixar claro que usar essa "funcionalidade" (não sei se isso seria realmente uma funcionalidade, já que não está documentada) pode resultar em comportamentos adversos (do projeto, não seus), uma vez que eu não estudei completamente o código-fonte do Django pra saber até onde vão os efeitos desse atributo.

So, have fun with moderation.

Em tempo: Estou com o Django-1.0
Nota de copyright: A imagem que utilizei aqui pertence ao site http://djangoproject.com

Django com WSGI

Ricardo Perez
No Gravatar

Para quem usa o mod_python para servir suas aplicações em Django e esta insatisfeito ou teve algum problemas com o mesmo. Pois é, eu mesmo tive um baita problemão com o mod_python e precisava de solução urgente, que fosse rápida e fácil de configurar, uma ótima alternativa que eu encontrei foi o mod_wsgi (http://code.google.com/p/modwsgi/), logo de inicio verifiquei que num servidor de alto acesso de usuários a diferença de performance foi visivelmente absurda, hoje em dia só uso o mod_wsgi.Não vou abranger instalação do mod_wsgi mas somente a configuração do Apache e do arquivo wsgi

No seu arquivo de configurção do apache

  1.  
  2. WSGIDaemonProcess user processes=2 maximum-requests=500 threads=1
  3. WSGIProcessGroup usergroup
  4. WSGIScriptAlias / /path/para/aplicacao # sabendo que é a pasta onde fica a aplicação e não ela
  5. Alias /public /path/para/aplicacao/app/public/
  6.  

crie um arquivo na pasta da sua aplicação com o nome app.wsgi

  1.  
  2. import os, sys
  3. sys.path.append('/path/para/aplicacao/')
  4. os.environ['DJANGO_SETTINGS_MODULE'] = 'app.settings'
  5. import django.core.handlers.wsgi
  6. application = django.core.handlers.wsgi.WSGIHandler()
  7.  

Maiores Informações: http://code.google.com/p/modwsgi/ e
http://code.google.com/p/modwsgi/wiki/InstallationInstructions

Referência:
http://ericholscher.com/blog/2008/jul/8/setting-django-and-mod_wsgi/

Django EmailMessage(Erro Com Cópia Oculta)

Ricardo Perez
No Gravatar

Hoje deparei com um pequeno problema no módulo EmailMessage do Django, eu precisava mandar um email oculto em uma certa funcionalidade, apesar do EmailMessage dar suporte a cópia oculta(BCC), ele definitvamente mostra para os outros destinatários do email quem foi enviado o email oculto(¬¬), dando uma buscadinha no Google encontrei essa snippet, FixedEmailMessage(http://www.djangosnippets.org/snippets/630/), que além de resolver este problema, também tem suporte a CC.

Vai la um exemplo:


FixedEmailMessage('titulo', 'corpo', from_email='ex@exemplo.com', to=['para@exemplo.com'], bcc=['oculto@email.com'], cc=['copiado@exemplo.com']).send()

Referência: http://www.djangosnippets.org/snippets/630/