Explorando Generic Views do Django

Posted September 24th, 2008 by Joe Rabelo
Categories: django, python

Explicações

Como já diz o título do post, aos poucos estou explorando as inúmeras facilidades que o Django oferece. Realmente esta é uma ferramenta fantástica! Ou melhor, um framework fantástico. Se você trabalha com web, procure conhecê-lo.

Django Framework

Minha idéia inicial, seria estar escrevendo de forma simples, como começar a utilizar o Django, para aqueles que já ouviram falar nele ou estão a procura de um amigão que faça o trabalho duro de um website pra você. Ainda não consegui escrever nada neste sentido e simplesmente não sei por quê. Diria que é falta de tempo, mas como ele é tão rápido e simples, não posso dar esta desculpa :) .

Mesmo assim, sem mais delongas, vou falar sobre algo que aprendi recentemente e julgo ser muito útil.

Agora sim, o problema

Querendo aproveitar da praticidade das generic views, esbarrei em um (aparente) problema. Como utilizar um parâmetro passado pela url como filtro para o queryset do objeto views.generic.list_detail.object_list que é um generic view utilizado para listar objetos (registros de banco).

Para que possamos utilizar a generic view e utilizar um filtro extra sendo passado pela url, faremos o seguinte.

A solução

Vamos utilizar o nome dos usuários do sistema para listar apenas as tarefas deste mesmo usuário.

Eis um exemplo de url, que obviamente deve ser adicionada ao arquivo urls.py adequado:


(‘r^lists/(?P\w+)/$’, ‘myproject.myapp.views.user_lists’),

Agora editaremos o arquivo views.py da aplicação utilizada (myapp/views.py) com o seguinte código:

from django.views.generic.list_detail import object_list
from myproject.myapp.models import TodoList

def user_lists(request, username):
todo_lists = TodoList.objects.filter(username__exact=username)
return object_list(request, queryset=todo_lists)

Pronto! Repare que o parâmetro variável passado na url é utilizada para filtar apenas as tarefas deste usuário.

Se desejar ou for necessário você pode utilizar os outros parâmetros do objeto object_list, conforme o exemplo:

object_list(request, queryset=todo_lists,
extra_context={‘open_item_count’: open_item_count,
‘priority_items’: priority_items})

Conclusão

É simples assim, divirta-se e até a próxima!

Visualizar consultas correntes no Postgresql

Posted June 12th, 2008 by Joe Rabelo
Categories: postgresql

Para que seja possível visualizar uma consulta corrente no postgresql, não é necessário nenhuma solução milagrosa, pelo contrário, é muito simples.

Primeiramente é necessário habilitar o parâmetro stats_command_string com o valor true no arquivo de configuração postgresql.conf.

stats_command_string = true

Esta configuração pode ser alterada com o banco de dados ativo, sem necessidade de reiniciá-lo. Para isto basta executar o seguinte comando após realizar a alteração.

pg_ctl reload

Ao ser habilitado o parâmetro stats_command_string o postgresql passa a armazenar em pg_stat_activity a query que está sendo executada.

É importante notar que esta alteração irá causar algum retardo e perda de performance, adicionando uma sobrecarga adicional aos comandos do banco de dados, portanto é necessário avaliar o benefício trago por esta modificação.

Para que você possa visualizar a consulta que esta sendo realizada no momento, realize a seguinte query.

select datname, procpid, query_start, current_query, client_addr
from pg_stat_activity

o resultado será algo como:

datname | procpid |     query_start     |     current_query
--------+---------+---------------------+-----------------------
banco1  |  49111  | 2008-06-12 14:40:37 | select * from tabela1
banco2  |  49112  | 2008-06-12 14:53:37 | select * from tabela2

Pronto, agora você consegue saber exatamente a consulta corrente que está sendo executada no postgresql.

Weblog, Feeds e cia

Posted June 5th, 2008 by Joe Rabelo
Categories: Sem-categoria

Ola pessoal,

Depois de muito tempo sem escrever nada, resolvi tirar alguns minutinhos para escrever algo. Hoje não vou falar de nada técnico. Gostaria apenas de falar sobre minha experiência com algumas ferramentas web 2.0 que achei bem interessantes.

Feeds

O primeiro deles é o google reader que é mais um dos excelentes serviços inteiramente gratuitos desta empresa que se tornou um monstro da rede. O google reader é um leitor de feeds online que mantém a mesma identidade visual utilizada por todos os serviços da google.

Ele tem algumas funcionalidades muito interessantes também, que já são obrigatórios em praticamente todos os serviços do tipo encontrados na net; como favoritos, compartilhamento de notícias, envio por email (óbvio), tags e acompanhamento de leitura dos seus feeds.

Twitter

Outro serviço interessante é o twitter, que se assemelha ao objetivo do weblog, porém muito mais dinâmico e iterativo, que é a uma das propostas da web 3.0. Nele você pode postar em intervalos bem pequenos e com conteúdo bem mais objetivo, aquilo que você esta fazendo no momento. Além de relatar aquilo que você esta fazendo, descobrindo e pensando, outras pessoas relacionadas a você pode responder, debater e discutir suas idéias de forma instantânea e deixando arquivado para quem queira acompanhar seus passos ou discutir suas idéias.

Sei que isto não é novidade para muitos, mas achei compartilhar sobre estas ferramentas.

Para quem quiser acompanhar, meu twitter é http://twitter.com/joerabelo.

Abraços e até a próxima.

Aprenda a Programar

Posted January 31st, 2008 by Joe Rabelo
Categories: ruby

Para aqueles que desejam aprender a programar, existem inúmeras apostilas, livros e tutoriais, principalmente no idioma inglês, porém, nem sempre tão detalhado e explicado quanto poderia ser, para um iniciante.

No entanto, Chris Pine teve a iniciativa de fazê-lo, e utilizando a linguagem Ruby, que é uma das linguagens mais simples e de fácil compreensão humana. E graças a vários voluntários da comunidade rails brasileira, em um tempo impressionante, menos de uma semana, a tradução do livro foi feita para o nosso espetacular idioma em uma versão html e outra em PDF.

Então, aqueles que desejam se aventurar à programar ou conhecer o Ruby na sua forma mais básica e simples, bom estudo!

Hello World!

Posted December 27th, 2007 by Joe Rabelo
Categories: off-topic

Bem vindos ao meu blog!

Como praticamente todo início no mundo da programação, estou  iniciando meu weblog também com o conhecido ”Olá Mundo“.

Pretendo compartilhar aqui, sempre que possível, algumas  dicas, tutoriais e conhecimentos a respeito de tecnologia e desenvolvimento de software.

Espero que gostem e fiquem a vontade para participar.

Até a próxima!