Monthly Archive for julho, 2009

Serializando json no django com wadofstuff

Como retornar json da model ou QuerySet em seu Django ?

Simples… utilizando o módulo DjangoFullSerializers, do WADOFSTUFF.
Link: http://code.google.com/p/wadofstuff/wiki/DjangoFullSerializers

Conforme escrito no wiki, este módulo, extende as funcionalidades do Django Built-in Serializer, adicionando 3 novas funcionalidades, inspiradas no RubyOnRails Json Serializer:
- excludes: onde você informa os campos que não serão serializados
- extras: onde você informa outras propriedades da model, que não sejam fields, para serem serializados. Métodos por exemplo.
- relations: onde você informa quais propriedades são listas ou dicionários que devem ter seus itens serializados também.

E isto é muito interessante, pois assim, com esta lib, conseguimos serializar nossa model e suas models relacionadas.
por exemplo

Dadas as models abaixo:

class Pessoa(models.Model):
    nome = models.CharField(max_length=50)
    pai  = models.ForeignKey(self)

quando serializar-mos ela, da seguinte forma ( levando em consideração que seu DjangoFullSerializers ja´está corretamente instalado):

json = serializers.serialize( 'json', Pessoa.objects.all() , indent=4, relations=('pai',) )

o json retornado será o seguinte:

[
    {
        "pk": 2,
        "model": "projeto.Pessoa",
        "fields": {
            "nome":"...",
            "pai": {
                "pk": 1,
                "model" : "projeto.Pessoa",
                "fields": {
                    "nome" : "..."
                }
            }
        }
    }
]

ou seja, serializando o objeto que mandamos, e os objetos relacionados a ele…
Muito bom ! E além de tudo, vai formatado se informado o parametro “indent”, caso não informado, vem flat…

Listar propriedades e métodos de objeto python

Como listar todos os ‘itens’ de um objeto em python ?
para saber o que existe de propriedades e métodos em um objeto python basta chamar a funcao ‘dir’, desta maneira:

variavel = 1
dir(variavel)

Pronto !
E para saber o que é cada item encontrado nesta classe, use a funcao ‘type’ , desta forma:

type(variavel.popriedade)

Blz !

Python e Oracle

Coloquei no wiki um script python que gera o arquivo xml para o Oracle SQL Developer, com todas as conexões para os schemas do banco. Podendo este ser importado pela ferramenta, facilitando assim a vida de quem trabalha com ela.

Já aproveitando, o script tem alguns exemplos interessantes, como strings gigantes, gravação em arquivo, loop while, método “format” da string e claro, como conectar e retornar queryes do Oracle.

Aproveitem e comentem tb …

Link: http://wiki.berlotto.blog.br/index.php?title=Conex%C3%A3o_com_Oracle

Django 1.1 – Ubuntu 9.04 : Como atualizar

Para atualizar seu django da versão 1.0.2 para a nova versão , 1.1, faça o seguinte:

Primeiro desinstale a antiga versão do django:

sudo rm -rf /usr/local/lib/python2.6/dist-packages/django*
sudo rm -rf /usr/local/lib/python2.6/dist-packages/Django*

Depois efetue o download da nova versão em: http://www.djangoproject.com/download/

Descompacte: tar zxvf Django-1.1.tar.gz

e .. instale:

cd Django-1.1
sudo python setup.py install

Pronto, você está apto a utilizar a mais nova versão do django em seu Linux Ubuntu !

Um abraço..

Python – For loop

#Foreach em listas
minhalista = ['item1','item2','item3']
for item in minhalista:
print item

#For numerico gravando em arquivo
f = open('/tmp/arquivo.log','w')
for ind in range(100):
f.write("Linha ( '" + str(ind) + "' )\n")
f.close()

#Famoso desconhecido: list comprehension
l_num = [1,2,3,4,5,6,7,8,9,10]
pares = [ x for x in l_num if x%2 == 0 ]

Mais sobre “List Comprehension”.

O que é Django ? Como funciona o Django ?

Bom, eu não irei re-escrever todo o texto de um belo artigo, apresentando o Django para todos, feito por GutoCarvalho.

Neste artigo ele fala sobre:

  • Historia
  • Estabilidade
  • Escalabilidade
  • Flexibilidade
  • Segurança
  • Cases com Django
  • Características interessantes

Além de várias outros pontos do django e sua usabilidade… Vale a pena ler e repassar, para que todos conheçam esta ferramenta fabulosa !

Link:  http://gutocarvalho.net/mediawiki/index.php/Analisando_o_DJANGO_escopo_em_infra-estrutura_e_seguran%C3%A7a

Como montar mensagens string em python ?

Simples…

Exemplo 1:

python" line="1">template = 'Minha mensagem com numero %d'
template2 = 'Minha mensagem com a string %s'
print template % 3
Minha mensagem com numero 3
print template2 % 'Sérgio'
Minha mensagem com a string Sérgio

Exemplo 2

print "Minha mensagem grande com {0} argumentos , para o texto de exemplo '{1}'.".format( 2, 'texto' )
Minha mensagem grande com 1 argumentos , para o texto de exemplo 'texto'.

Um abraço…

Minha mensagem com numero 3

Recursividade com memorização

Fica ai uma dica bem interessante de algorítimo para se testar na sua linguagem preferida…

http://imasters.uol.com.br/artigo/13686




Better Tag Cloud