sexta-feira, 9 de julho de 2010

Classes - Python

Maria Luíza Santinho Lima Monteiro

Bom dia!
Essa semana desenvolvi as classes em Python que serão utilizadas para o vínculo com o banco de dados. Estas classes foram definidas durante a reunião. Segue abaixo o código de uma delas:


class Pessoa (DatabaseClasse):


  def __init__(self,pessoa_id = None):
      DatabaseClasse.__init__(self)
      self.id = pessoa_id
      self.name=None
      self.data_nascimento = None
      self.listaPessoas = {}
      self.load()

  def load(self):
   """
   retorna um dicionario (id: (nome, data_nascimento, ...)) de todos
do banco
   """

      cursor = self.connection.cursor()
      cursor.execute('SELECT nome, data_nascimento FROM pessoa
WHERE id=?',(self.id,))
      row = cursor.fetchone()
      if row:
         self.name = row['nome']
         self.data_nascimento = row['data_nascimento']
         self.loaded = True

      return self.loaded

  def get_all_pessoas(self):
   """
   Retorna uma lista de todas as pessoas do banco - O objeto Pessoa Se
encontrado, as instancia e retorna seus objetos
   """

      cursor = self.connection.cursor()
      sql = 'SELECT id FROM pessoa'
      cursor.execute(sql)
      pessoas = []
      for row in cursor:
         pessoas.append(Pessoa(row['id']))
      return pessoas

  def get_dict_all_pessoas(self,params=()):
   """
   params = ()
   retorna dicionario (id da pessoa : (nome, data de nascimento) de todas as
pessoas do banco
   """

      cursor = self.connection.cursor()
      cursor.execute("SELECT id,nome,data_nascimento FROM pessoa")
      for row in cursor:
         self.listaPessoas[str(row['id'])] = ([row['nome']],
str(row['data_nascimento']))
      return self.listaPessoas

  def get_name(self):
      return self.name

  def get_data_nascimento(self):
      return self.data_nascimento

  def get_id(self):
      return self.id

  def save(self):
      cursor = self.connection.cursor()
      if self.loaded:
         sql = 'UPDATE pessoa SET nome = ?, data_nascimento=? WHERE
id=?'
         cursor.execute(sql,(self.name,self.data_nascimento,self.id))
      else:
         sql = 'INSERT INTO pessoa (nome,data_nascimento,id) VALUES
(?,?,?)'
         cursor.execute(sql,(self.name,self.data_nascimento,self.id))
      self.connection.commit()

  def set_name(self,name):
      self.name = name

  def set_data_nascimento(self, data_nascimento):
      self.data_nascimento = data_nascimento

  def set_id(self,id):
   #pegar do banco o ultimo id e acrescentar
      self.id = id

Observação: As classes poderão sofrer algumas alterações.

Nenhum comentário:

Postar um comentário