Pylons, Firebird, problemas (e soluções)
Acho que vários programadores já tiveram problemas com codificações, utf-8, iso, latin… Bem, eu tinha um grande, o banco que estou trabalhando é um Firebird , latin-1 e o Sqlobject + mako + Pylons não se entenderam muito bem! Solução: Toda a plicação está utf-8:
# -*- coding: utf-8 -*-
E o model está
# -*- coding: iso-8859-1-*-
O SqlObject (vou falar depois sobre banco de dados legado) é muito legal e nos dá opções de encoding da coluna:
body = UnicodeCol(dbName='MSG_BODY', dbEncoding="iso-8859-1", default='')
O Pylons e o Mako permitem setar encode de inpurt e output (enviroment.py no load_environment):
tmpl_options['mako.input_encoding'] = 'iso-8859-1'
tmpl_options['mako.output_encoding'] = 'utf-8'
tmpl_options['mako.default_filters'] = ['decode.utf8']
request_settings = dict(charset='utf-8', errors='replace')
config['pylons.response_options']['charset'] = 'utf-8'
Assim tudo funcionou perfeitamente, 2 dias de pura loucura tentando fazer funcionar e agora parece estar tudo bem. Ponto para a documentação do Pylons e do Mako que, ambas, tem páginas tratando somente desse assunto.
Mudei minha mente sobre o Pylons agora que terminei uns testes, é um framework que cabe na cabeça e de fácil utilização, a documentação ainda perde para a do Django mas me foi bem mais útil que a do TurboGears, e como falou-se aqui, ele (TG) tem uma api instável (o bom é que vão mudar para o modelo do Pylons).
Eu tenho mexido bastante com o Pylons, e a impressão que eu tive foi muito boa! Mas estou usando com SQLAlchemy e Elixir!
Comment by Walter Cruz on September 1, 2007 at 2:01 pm