Um modulo simples para python, cheetah. Ele tem tudo que programadores python gosta, simples, bem documentado, comunidade ativa, rápido, possui um mecanismo de cache entre outras funcionalidades.
Onde baixar?
http://www.cheetahtemplate.org
Instalando
1
| python setup.py install |
Criando um objeto simples Cliente
1
2
3
4
| class Cliente():
def __init__(self, nome, email):
self.nome = nome
self.email = email |
Criando um template
1
2
3
4
5
6
7
8
9
10
11
12
13
| <html>
<head><title>$title</title></head>
<body>
<div>
#for $cliente in $clientes
<div>
<b>$cliente.nome</b>
(<a href="mailto:$cliente.email">$cliente.email</a>)
</div>
#end for
</div>
</body>
</html> |
Executando
1
2
3
4
5
6
7
8
9
10
11
12
| from Cheetah.Template import Template
if __name__ == "__main__":
clientes = [Cliente("Eliezer Rodrigues", "eliezer@teste.net"),
Cliente("Maria", "maria@teste.net")]
template = Template(file="page.tpl")
template.title = "Todos os clientes"
template.clientes = clientes
print str(template) |
Resultado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <html>
<head><title>Todos os clientes</title></head>
<body>
<div>
<div>
<b>Eliezer Rodrigues</b>
(<a href="mailto:eliezer@teste.net">eliezer@teste.net</a>)
</div>
<div>
<b>Maria</b>
(<a href="mailto:maria@teste.net">maria@teste.net</a>)
</div>
</div>
</body> |
Curtiu?? para saber mais sobre o projeto entre no guia do usuário e confira tudo sobre o cheetah.
Uma das coisa que atualmente mais acho legal em programação é Python. É muito bem documentado, simples e rápido. Em um projeto open source que estou parcipando, o Peanut [Explico melhor em um outro post
], tive que persistir uma configuração do software, e com isso veio a possibilidade de utilizar o módulo shelve do python.
O shelve foi criado para trabalhar com persistência de dicionários (dict) python em arquivo. Para operações simples, configuração, dados não muito grandes, é perfeito. Sua chave sempre deve ser uma string.
Como a maioria dos módulos em python, é tudo muito simples:
Exemplo 1: Vamos salvar uma lista de e-mail em um arquivo
1
2
3
4
5
6
7
| import shelve
emails = shelve.open('emails.db')
emails["maria"] = "exemplo@maria.com.br"
emails["joao"] = "exemplo@joao.com.br"
emails.close() |
Recuperando os e-mails
1
2
3
4
5
6
| import shelve
emails = shelve.open('emails.db')
print emails["maria"]
emails.close() |
Exemplo 2: Persistência de um objeto mais completo
Criação de um objeto simples
1
2
3
4
5
6
7
| class Profile():
def __init__(self, name, type, username, password=None, auto_login='off'):
self.name = name
self.type = type
self.username = username
self.password = password
self.auto_login = auto_login |
Classe util para acesso a shelve
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| import shelve
class Db():
def open(self):
self.__db = shelve.open("profiles.db")
def close(self):
self.__db.close()
def add(self, profile):
self.__db[profile.name] = profile;
def size(self):
return len(self.__db)
def find_all(self):
return self.__db.values();
def get(self, key):
return self.__db[key]
def get_first(self):
return self.get(self.__db.keys()[0]) |
Inserindo um perfil
1
2
3
4
5
| db = Db()
db.open()
profile = Profile("maria", "user", "mariazinha", "123")
db.add(profile)
db.close() |