Arquivo para junho, 2009

Django – Hospedagem UolHost …

Posted in Django, Tecnologia with tags , , on 29 de junho de 2009 by fchevitarese

Salve salve!!!

Bom, desenvolvi um site para a paróquia onde sou paroquiano, e na hora de hospedar surgiu a dúvida.  Onde ?? Como ??
Eu tenho um problema. Quando estou comprando coisas, o assinando serviços, sou extramamente chato! Entenda o extramamente no sentido literal da palavra! Ou seja, eu sou chato pra ca%$@#& !!!

Então, entrei no grupo de discussão do Django, para saber informações preciosas e privilegiadas à respeito das hospedagens, experiências dos usuários, preços etc … Não encontrei muita coisa é verdade!  Algumas informações importantes, mas como eu disse, eu sou chato de mais para contratar um serviço apenas lendo as descrições na página!
Meu negócio é na conversa! Fio do bigode é o que conta!!!

Então, amiGoogle na parada! Procurei, procurei, procurei … Ahff.. até cansei… Meio desconfiado, encontrei o UolHost…
Bom, dentre outras opções, foi o único lugar onde consegui trocar uma idéia com um vendedor que conhecia o produto que estava vendendo.

Bom, a hospedagem no uolhost tem várias opções como não poderia ser diferente, então, como estava testando e este site era o primeiro que eu estava fazendo utilizando Django, resolvi optar pela versão mais básica!
Segue aqui o link dos planos.

Peguei o mais basicão.
5 Gb de armazenamento;
5 Gb para banco de dados;
Transferência mensal: ILIMITADA;
Domínio grátis no 1° ano;  (Depois é só R$ 15,00 por ano!)
Banco de dados Mysql: ILIMITADOS; (Respeitando os 5 GB de espaço)
25 contas de email de 2 GB cada;
Taxa de inscrição grátis.

Eis que surgiram as dúvidas.

Qual a versão do python?
Suporta do Django mesmo?
Se eu precisar de suporte como é ?

Então, conversei muito com o atendente e é o seguinte.
O python é a versão 2.4
O Django, você instala a versão que quiser… (Eu instalei a beta! uhauhauha )

Para instalar, segue o link do tutorial:
http://blog.uolhost.com.br/2008/12/04/tutorial-django-framework-python/

O único detalhe é:
O arquivo .htaccess que você deve criar, não deve ficar dentro da pasta do projeto como é dito no tutorial.
Deve sim ficar na pasta public_html. Sendo assim, seu projeto será mapeado corretamente!

Pena que eles moderaram meu comentário:

“Consegui até que enfim fazer minha aplicação rodar! Obrigado uolhost pelas horas intermináveis de trabalho e milhares de neurônios queimados! “

No mais, estou satisfeito com a uolhost. O atendimento é bom, um pouco burocrático é verdade, mas é bom no geral.
A única coisa que achei fraca é que não é possível instalar módulos adicionais ao python, portanto, algumas bibliotecas de terceiros não irão funcionar. A não ser que alguém ou eu mesmo descubra um jeito de colocar pra funfar!

Abraços…

Fred Chevitarese – GNU/Linux

Killer Tux !! kkkkkk

Posted in Inutilidades, Linux on 26 de junho de 2009 by fchevitarese

Ainda bem que era windows ein !! 😉

Django Flatpages – Debug False ?! uatarelis? Parte 01

Posted in Django, Programação, Python with tags , , , on 25 de junho de 2009 by fchevitarese

Boa noite!
Bom, estive desenvolvendo um site, e resolvi utilizar o maravilhoso Django 😉 !!
Então, como haviam algumas partes “estáticas” ou seja, que eram apenas de texto, como sobre a empresa etc, essas coisas informativas em um site normal, resolvi utilizar as flatpages que o Django oferece!

Para utilizá-las, basta adicionar ao INSTALLED_APPS o seguinte :
‘django.contrib.flatpages’,

E também adicionar ao MIDDLEWARE_CLASSES, o seguinte:
‘django.contrib.auth.middleware.AuthenticationMiddleware’,

Feito isto, basta sincronizar o banco de dados com o comando “python manage.py syncdb” que serão criadas as tabelas referentes aos flatpages!
Bom, agora, é entrar no admin, e cadastrar sua primeira flatpage!

Mas primeiro, vamos adicionar nosso site de maneira correta, para que depois possamos exibir tudo certinho.
Clique no item “Sites” e será exibido um grid com os sites disponíveis.
Você pode ver que primeiro está cadastrado o site “example.com”. Vamos alterar este cabra para “localhost:8000” se estivermos rodando a partir do servidor do próprio Django ok. Se não, mude para o seu endereço. Ah… sem http ok !!!

Agora sim, vamos adicionar uma nova flatpage para testarmos!

Adicionando a 1° Flatpage
Uma ressalva importante, é se lembrar de colocar na url sempre as barras no começo e no final, e também a questão dos templates. No nosso caso, iremos criar os templates na pasta onde ficam os templates. Pasta esta que foi configurada no arquivo settings.
No meu caso, como minha pasta de templates, chama-se template, e dentro dela, tenho outra pasta para guardar os templates das flatpages, ficou assim:

Flatpage preenchida
Feito isto, é só salvar.
Beleza, já temos nossa página de conteúdo (“flatpage”). É verdade, pode chamar http://localhost:8000/”a url salva”
Vai aparecer tudinho que você colocou lá 😉

Bom, mas o motivo deste post foi porque, não consegui encontrar nenhuma solução para o meu problema, e tive que fazer isto “alone in the dark” sozinho!!!
Então. Quando eu coloquei o modo debug como false, começaram os meus problemas. Não encontrava nada! nada! e nada! rsrsrs
Então, pude perceber em vários blogs, listas e links encontrados pelo AmiGoogle, que faltavam-me os arquivos 500.html e 404.html. Mas, “uatarelis dis” ?
Bem, os arquivos 404.html e 500.html são os templates para quando o django não encontra as páginas digitadas! Com o debug = true, isto nunca ocorre. Então, criei os arquivos dentro da pasta dos templates.

Ok, mas mesmo assim, meus problemas não acabaram!! Então, resolvi mais uma vez recorrer ao google, e encontrei um belo link do prórpio Django que me fez ter a idéia para resolução deste problema!

http://code.djangoproject.com/browser/django/trunk/django/contrib/flatpages

Acompanhe a 2° parte do post.

Django Flatpages – Debug False ?! uatarelis? Parte 02

Posted in Django, Programação, Python with tags , , , , on 25 de junho de 2009 by fchevitarese

Continuação do  post:
Parte 01

O que fiz, foi desativar o middleware das flatpages, que é responsável por localizar e renderizar as flatpages, e criar a view para fazer isto!!!
Bom, então vamos lá!
Esta é minha view para pegar os dados das flatpages. Não se esqueçam das tabulações…. Aqui não da pra fazer certinho 😦

View para buscar as flatpages

Você pode adicionar este código a qualquer view sua 😉

Agora, vamos setar as urls… no arquivo urls.py para podermos exibir as benditas.

Configurando as urls ...
A única desvantagem ao middleware do flatpages, é que você precisa adiconar cada url de cada flatpage! O middleware faz este trabalho para você, mas no meu caso, o sacana não quis funcionar de forma alguma!

Agora, para terminar, vamos criar dentro da nossa pasta de templates, uma pasta chamada flatpages.
Dentro dela, vamos criar um arquivo chamado default.html.  Tem que ser este nome? Não na realidade fica a seu critério, só que fica mais fácil, pois todos os arquivos são os mesmos, e eles são passados pela view de acordo com o que você cadastrou no nome do modelo de sua flatpage. Portanto, no meu caso, passei como modelo para todas as minhas flatpages, o arquivo default.html, pois assim, preciso criar apenas um ! 😉

Segue abaixo como ficou o meu default.html

{% extends “base/base.html” %}
{% block titulo %}{{ block.super }} | {{ flatpage.title }}{% endblock %}
<h1>{{ flatpage.title }}</h1>
{% block outros %}
{{ flatpage.content|safe }}
<br />
<br />
<br />
<center><input type=”button” value=”Voltar” style=”width: 50px;” onClick=”javascript:history.go(-1); “/></center>
{% endblock %}


No meu caso, meu template herda as características do meu template base, que está localizado na pasta de templates…
Neste template base, tem um block onde coloco outras coisas, daí o nome {% block outros %}

Bom, é isto!

Espero que possa ter ajudado mais alguém com seu projeto que ficou parado queimando alguns neurônios tentando fazer as flatpages funcionarem!!!

Até mais !!

Fred Chevitarese – GNU/Linux

Django – Adicionando vídeos do Youtube utilizando django-oembed !!!

Posted in Django, Python with tags , , , , on 21 de junho de 2009 by fchevitarese

Salve salve!! uhauauhhua

Bom, estou fazendo esta pequena ajuda, para que deseja adicionar vídeos do youtube em seu site, desenvolvido utilizando Django de maneira mais fácil!
Bom, primeiramente, a minha intenção era a de adicionar os vídeos que fossem associados a determinado canal, ou talvez, determinada categoria etc. Mas como ainda não retornar os dados, resolvi fazer de outra forma!

Bom, tendo em vista que você já tenha um projeto rodando, vamos adicionar um novo “aplicativo” ao seu projeto!

Aplicativo

Aplicativo

Após criado o nosso aplicativo, vamos modelar os dados ! 😉
Bom, estou criando meus models utilizando o Eclipse com o plugin PyDev.!!

Modelagem dos dados.

Modelagem dos dados.

Feito isto,  vamos adicionar o novo aplicativo ao nosso arquivo “settings.py”

INSTALLED_APPS = (

‘videos’,

)

Beleza!! Agora vamos sincronizar o BD com o comando manage.py syncdb …

Vai criar as tabelas tudo bonitinho!
Agora, temos que adicionar o app ao admin 😉
Dentro da pasta do aplicativo, crie o arquivo admin.py, e deixe como na imagem abaixo.

Adicionando ao admin

Adicionando ao admin

Pronto, agora vamos ao admin. Inicie o server e entre na interface do admin !

admin

admin

Vamos adicionar um vídeo para testes ok 😉

Adicionando vídeo...

Adicionando vídeo...

Vídeo salvo, está tudo pronto?
Não, vamos criar a view!!

Adicionando a view

Adicionando a view

Bom, agora vamos ao nosso “facilitador”, que foi encontrado no endereço
http://code.google.com/p/django-oembed/

Bom, baixe e siga as instruções do pacote para instalar ok! Não irei descrever como fazer isto pois não é o foco do post!

Bom, instalado o app, adicione ele ao settings.py.
É só adicionar ao INSTALLED_APPS:
‘oembed’ ,

Sincronize a sua base de dados …
Feito isto, agora é só mexer nos templates…

Primeiro, adicione a tag como na imagem abaixo:

Tags

Tags

E a url do vídeo, você coloca dentro das tags {% oembed %} e {% endoembed %}, conforme abaixo!

Template

Template

No caso, este meu template extende o base, e tenho um block chamado outros para adicionar outros conteúdos a página!
Dentro do {% block outros %} , foi adicionado um {% for %},  para carregar cada vídeo que foi adicionado através do admin.

Pronto… Acho que é isto!
Espero encontrar uma forma de buscar os dados do youtube, e colocá-los no site!
Ah… e acho que funciona com outros sistemas além do youtube ok! Mas ainda não testei!!

Se alguém souber, me fale! rsrsrs

Qualquer coisa, entrem em contato! Valeu!

Fred Chevitarese – GNU/Linux

Komodo Edit & Django/Python

Posted in Programação, Python, Tecnologia on 9 de junho de 2009 by fchevitarese

Surfando na internet, encontrei um blog onde ensina a utilizar o Komodo Edit (versão free) para codificar python e naturalmente Django.

Segue o link para quem quiser ver 😉

http://rfdev.org/2008/04/19/komodo-edit-e-django/

O blogueiro disse que o vídeo ficou com a qualidade muito baixa ao enviar para o Google Video, portanto, segue também o link retirado do site dele para o download do vídeo com a qualidade melhor…

http://rfdev.org/blog_media/downloads/komodo_django.avi.zip

Logicamente, o blog dele é http://rfdev.org

Abraços

IDE para Python!! Agora ta ficando bom !!!

Posted in Programação, Python, Tecnologia with tags , on 4 de junho de 2009 by fchevitarese

Bom, estou lendo o livro que postei aqui no blog… Até então muito bom!!! Melhor ainda… Free…. auhuhahuauha

Então, vi neste livro que, existe para a fantástica IDE Eclipse, um plugin para python chamado pydev!
Como não poderia ser diferente, chegando no trabalho, resolvi testar o tal plugin!!
E ……………. Putz!!! Num é que o trem é bão mesmo ?!?!!?!?!

Então segue o site para download, e algumas imagens de como se deve fazer a instalação, tendo em vista é lógico, que você já baixou o eclipse e já está com ele rodando né 😉

Download Eclipse
Plugin para Eclipse

Agora, abra o eclipse, e vá diretamente no menu ajuda,  Software Updates, Avaliable Software …

Clique em Add site, e coloque a seguinte URL:

http://pydev.sourceforge.net/updates/

Depois, irá aparecer na lista de sites, Pydev Update Site…

Clique no “+” e mande instalar o plugin…

Depois é só usar!!!
Seguem alguns prints pra ilustrar 😉

IMG1

02
03
04

Python + “Banco de dados access”

Posted in Programação, Python, Tecnologia with tags , on 4 de junho de 2009 by fchevitarese

Opa!!

Quantas vezes nos deparamos com sistemas desenvolvidos por terceiros, e temos que dar manutenção nos mesmo!
Na realidade não sei! hehehe… Só sei que aconteceu comigo!
Existia um sistema, desenvolvido em VB6, utilizando o “banco de dados” access… Se é que se pode realmente chamar isto de banco de dados!

O que era armazenado neste banco, eram strings de tráfego de texto… Até aí tudo bem!

Acontece que, não haviam chaves primárias e, o campo onde eram guardadas as strings é do tipo memorando, ou seja, analisar os registros era inviável!
Fazer um select utilizando o LIKE, para buscar parde da string não funcionou de forma alguma!
O que fazer!?!!?!? “Oh xit modefoker!”

A vontade que dá mesmo, é de cobrir de porrada o $@##$@# que fez esta #@!#@! … Mas vamos lá!

Pensei no Python, pela sua facilidade… Mas se o select não funcionava, como iria fazer a pesquisa?

Pois bem, a primeira tarefa foi a conexão com o banco, depois, como a string armazenada era realmente um arquivo txt, com suas tabulações, quebras de linha etc., resolvi pegar todos os resultados e gravar em arquivos para depois fazer a pesquisa nos arquivos! 😉

Vamos lá …

Para começar, precisamos instalar o módulo que será responsável pela conexão com o MDB …
A criança pode ser encontrada aqui

Faça o download do pacote apropriado a versão do python que você tem instalado em sua máquina ok! 😉

Tudo instalado, vamos criar o script…

Primeiramente, devemos importar os módulos que serão utilizados…

import win32com.client, sys, os.path, glob

Onde, win32com é o módulo responsável pela conexão com o Access…
Os outros módulos são do próprio python. Para saber mais a respeito dos mesmos, dê uma googlada, pois o escopo deste tuto é a conexão com o banco 😉

Vamos definir a variável de conexão e a variável para o recordset:

conexao = win32com.client.Dispatch(“ADODB.Connection”)
Rs = win32com.client.Dispatch(“ADODB.Recordset”)

No meu caso, como fiz um script mais “genérico”, ou seja, um script onde eu possa analisar o banco que eu quiser, faço então uma interação com o usuário, para que o mesmo especifique o caminho e nome do banco de dados ok!

banco = raw_input(u’Digite o caminho completo para o arquivo MDB:\n’)

try:

conexao.Open(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + str(banco))

except:

print(u’Ocorreu um erro ao acessar o banco de dados …’)
raise SystemExit

Lembrem-se de tabular corretamente o código, pois ainda não descobri como colar o código tabulado no blog.. .rsrsrs

No código acima, estamos perguntando ao usuário, qual é o caminho completo para o banco de dados.
Depois tentamos a conexão de acordo com os dados passados. O bloco try foi utilizado para que, caso o usuário informe incorretamente o caminho, não gere um erro esdruxilo! 😉

Agora, vamos perguntar em qual tabela será efetuada a pesquisa, e também já definimos o select que será feito na mesma:

tabelaPesquisa = raw_input(‘Digite a tabela a ser pesquisada:\n’)

strSQL = “Select * from ” + str(tabelaPesquisa)
print strSQL
Rs.Open(strSQL, conexao, 2,3)

Agora, vamos pegar o nome do campo e definir o diretório onde serão gravados os arquivos com os resultados:

#Selecionando os registros …
i = 0
if not Rs.EOF:
#Pegando o nome dos campos …
for tabela in Rs.Fields:
nomeTabela = tabela.Name

#Definindo manualmente onde serão gravados os registros …
caminho = raw_input(u’Digite o diretorio onde serao gravados os arquivos:\n’).strip()

Rs.MoveFirst() #(Eu havia esquecido deste detalhe!!)

while not Rs.EOF:
i += 1
dados = Rs.Fields[nomeTabela].value
arq = file(str(caminho) + “\Pedido” + str(i) + “.txt”, ‘w’)
try:
arq.write(dados)
except:
print “Occoreu um erro ao gravar o arquivo…”
raise SystemExit
arq.close()
print u”\rProcessando registro %d … ” % i,


Rs.MoveNext() # (E deste também!)

#break
else:
print u”Nao encontrei nada …”

Após pegar o valor do registro, defino o nome do arquivo que será gerado com os dados deste registro.
Eu pré-defini o nome como Pedidos + o número do registro. Mude a vosso gosto 😉

Os blocos try, como da vez anterior, são para tratar possíveis erros na hora da gravação dos dados no txt…

Aqui, você encontra mais informações, métodos e outras particularidades do módulo de conexão com o access…

Segue para download, um documento do Word com o script… Repeitando as tabulações, é só copiar o que está dentro dele e salvar como um arquivo do Python 😉

Python+Access

Abraços…

Fred Chevitarese – GNU/Linux