Arquivo

Textos com Etiquetas ‘Python’

Template Engine em Python – Cheetah

10, setembro, 2009 eliezer Sem comentários

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.

    Persistência em Python com módulo Shelve

    24, agosto, 2009 eliezer 1 comentário

    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()
    Categories: Python Tags: ,