Diego Santos

Vocês anseiam pelo dia em que homens serão homens e escreverão seus próprios devices drivers?

Trabalhando com Mysql em Python julho 27, 2008

Filed under: Python — diegosantos @ 11:37 pm
Tags: ,

Após alguns artigos falando sobre o básico da linguagem python, irei agora mostrar algo um pouco mais complexo e que será útil todas as vezes que precisarmos guardar os dados processados em nosso aplicativo em um banco de dados, nesse caso o Mysql.

Iremos precisar instalar um módulo “mysql-python, tente :

# yum -y install MySQL-python

Caso algo errado aconteça, tente utilizar o packageKit, se seu fedora for o Sulphur, digitando mysql-python.

Para Debian e derivados :

# apt-get install python-mysqldb

A interface python para mysql conhecida como MySQLdb é um módulo muito conhecido para a interação com banco de dados mysql em python. Após sua instalação vamos conhecer algumas funcões básicas para seu uso.

+ Conectar ao Servidor

pyCon = MySQLdb.connect(‘servidor’,’usuario’,’senha’)

+ Selecionando o Banco de Dados

pyCon.select_db(‘Banco de Dados’)

Para trabalharmos com o mysql em python precisamos criar um handle, uma espécie de cursor :

+ Criar ponteiro, cursor

pyCursor = pyCon.cursor()

+ Executar query SQL

pyCursor.execute(‘sql’);

Depois de termos executado uma query, podemos pegar seu valor de trê maneiras mais comuns e práticas :

+ Retorna uma linha apenas

pyResultOne = pyCursor.fetchone()

+ Retorna todas as linhas

pyResultAll = pyCursor.fetchall()

Podemos ainda retornar todas as linhas como um dicionario, tendo os nomes dos campos como indice :

pyResultDic = pyCursor.dicfetcall()

Agora uma classe em python para tratar o mysql :

arquivo : connect.py

#! /usr/bin/python

class connect:

def __init__(self, pyServer, pyUser, pyPass):

self.pyServer = pyServer

self.pyUser    = pyUser

self.pyPass    = pyPass

self.pyCon     =  MySQLdb(pyServer, pyUser, pyPass)

selft.Cursor    = selft.pyCon.cursor()

def execSql(self, sql):

self.pySql = self.pyCursor.execute(sql)

return self.pySql

def returnOne(self):

self.pyResultOne  = self.pyCursor.fetchone()

return self.pyResultOne

def returnAll(self):

self.pyReturnAll = self.pyCursor.fetchall()

return self.pyReturnAll

Anúncios