Jump to content

Archived

This topic is now archived and is closed to further replies.

ScornInPC

Python + MySQL

Recommended Posts

e ae gente ^^do aqui a pedidos de milhares de pessoas =) \o/\o/\o/bem, vou tentar aqui, explicar mais ou menos, como trabalhar com python e MySQL beleza? ^^bem, possivelmente, voce estará usando python 2.5, e aqui no meu humilde desktop, não precisei instalar nada para rodar MySQL ^^, alem do servidor, é claro. Mas para quem precisar instalar o modulo, pode encontra-lo aqui http://sourceforge.net/projects/mysql-python.Bem, inicialmente, importaremos o modulo do MySQL

import MySQLdb
Neste ponto, se aparecer alguma coisa do tipo

ImportError: No module named MySQLdb

É por que voce não possui o módulo instalado, corra para http://sourceforge.net/projects/mysql-python, e instale ele, é super simples ^^Bem, com o módulo instalado e carregado, precisamos criar o objeto
try:	dbConnection = MySQLdb.connect("localhost", "root", "123456")except:	print "Erro ao conectar ao banco de dados"	exit()
Depois de criado o objeto, precisamos de um outro, que será nosso cursor
dbCursor = dbConnection.cursor()
Pronto, ja temos tudo na mão, agora é só usar. Vamos selecionar o nosso banco.
try:	dbConnection.select_db("pythondb")except:	dbCursor.execute("create database pythondb")	dbConnection.select_db("pythondb")	dbCursor.execute("create table usuarios (idusuario int not null auto_increment, nome varchar(15) not null, senha varchar(32) not null, primary key(idusuario));")
Agora, para fazer alguns cadastros fazermos o seguinte: importar o modulo md5 e criar um objeto, para podermos criptografar a senha do usuario :P
import md5md5 = md5.new()
md5.update("senha")dbCursor.execute("insert into usuarios (nome, senha) values ('usuario2', '" + md5.hexdigest() + "')")
Para listar todos os usuarios, utilizamos o seguinte bloco
dbCursor.execute("select idusuario, nome from usuarios order by nome")resultSet = dbCursor.fetchone()print resultSet[0], resultSet[1]
Como pode ver, o feltchone() retorna a primeira linha encontrada (isso eh uma mão na roda)Outro modo é o fetchall(), que retorna tudo
dbCursor.execute("select idusuario, nome from usuarios order by nome")resultSet = dbCursor.fetchall()for results in resultSet:	print results[0], results[1]
bem, é isso ai, facil não?o arquivo completo fica assim
import MySQLdbimport md5try:	dbConnection = MySQLdb.connect("localhost", "root", "123456")except:	print "Erro ao conectar ao banco de dados"	exit()	dbCursor = dbConnection.cursor()try:	dbConnection.select_db("pythondb")except:	dbCursor.execute("create database pythondb")	dbConnection.select_db("pythondb")	dbCursor.execute("create table usuarios (idusuario int not null auto_increment, nome varchar(15) not null, senha varchar(32) not null, primary key(idusuario));")md5 = md5.new()md5.update("123456")dbCursor.execute("insert into usuarios (nome, senha) values ('usuario1', '" + md5.hexdigest() + "')")md5.update("abcdef")dbCursor.execute("insert into usuarios (nome, senha) values ('usuario2', '" + md5.hexdigest() + "')")md5.update("123abc")dbCursor.execute("insert into usuarios (nome, senha) values ('usuario3', '" + md5.hexdigest() + "')")dbCursor.execute("select nome from usuarios order by idusuario")resultSet = dbCursor.fetchone()print "-- O nome do primeiro usuario registrado e", resultSet[0]print "-- Usuarios"dbCursor.execute("select idusuario, nome from usuarios order by nome")resultSet = dbCursor.fetchall()for results in resultSet:	print results[0], "--", results[1]
salve como mysql_teste.py, e rode em um terminal (cmd): python mysql_teste.py[]'s ^^

Share this post


Link to post
Share on other sites

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Cara to sem palavras.

 

parece que tudo o que eu preciso você já postou aqui, você esta antecipando minhas perguntas né?

hahahhaha

 

por acaso você não vai ensinar a usar PyGTK agora não vai?

 

Mais uma vez, PARABÉNS.

Share this post


Link to post
Share on other sites

Python3 code(não testado):

/*Comentarios adicionados para a felicidade de nosso amiguinho Tarantula*/
import MySQLdb
import hashlib

try:
	dbConnection = MySQLdb.connect("localhost", "root", "123456")
except:
	print("Erro ao conectar ao banco de dados")
	exit(1)
	
dbCursor = dbConnection.cursor()

try:
	dbConnection.select_db("pythondb")
except:
	dbCursor.execute("create database pythondb")
	dbConnection.select_db("pythondb")
	dbCursor.execute("create table usuarios (idusuario int not null auto_increment, nome varchar(15) not null, senha char(32) not null, primary key(idusuario));")

hashHolder = hashlib.md5(); /*recomendo outro algoritmo de hash mais forte
ex: hashHolder = hashlib.sha256()*/
/*
	[hash.]update(self, valor)
	Adiciona ao final da string do parametro de self contendo a string passada para o construtor a string referenciada por valor.
*/ 
hashHolder.update(b"123456")
/*Se for executar uma query com "dados vindos dinamicamente", ao menos escapar o caracter ' e o caracter \ (ou deixar o trabalho para o db [explicitamente,ele não é mágico])*/
dbCursor.execute("insert into usuarios (nome, senha) values ('usuario1', '" + hashHolder.hexdigest() + "')")
hashHolder.update(b"abcdef") /*"123456" + "abcdef"*/
dbCursor.execute("insert into usuarios (nome, senha) values ('usuario2', '" + hashHolder.hexdigest() + "')")
hashHolder.update(b"123abc")
dbCursor.execute("insert into usuarios (nome, senha) values ('usuario3', '" + hashHolder.hexdigest() + "')")

dbCursor.execute("select nome from usuarios order by idusuario")
resultSet = dbCursor.fetchone()
print("-- O nome do primeiro usuario registrado eh:", resultSet[0])

print("-- Usuarios")
dbCursor.execute("select idusuario, nome from usuarios order by nome")
resultSet = dbCursor.fetchall()
for results in resultSet:
	print(results[0], "--", results[1])

Share this post


Link to post
Share on other sites

Olá gente.

 

Eu não consegui instalar o MySQL for Python.

 

Tentei de todo o jeito.

 

Alguém dá um auxílio?

Share this post


Link to post
Share on other sites

Pessoas.

Ele dá uma erro.

 

vcvarssal.bat not found.

 

Que faço?

Share this post


Link to post
Share on other sites

caso a consulta precise de mtas linhas pra sem manter organizada e tambem use variaveis (results no caso), segue o exemplo

 

	dbCursor.execute("SELECT right('" + results + "',6) ref, b.municipio,b.bairro, count(*) qtde_clientes, sum(total_faturado-cota_parcelamento) faturado  " \
	+ "FROM cliente_bairro b , faturamento." + results + " f "\
	+ "where f.lote between 1 and 20 " \
	+ "and tipo_faturado <> 'A' " \
	+ "and f.numero_cliente not in (select numero_cliente from ampla.clientes_governo) " \
	+ "and f.numero_cliente not in (select numero_cliente from corte_religa.area_risco) " \
	+ "and f.numero_cliente not in (select numero_cliente from corte_religa.area_risco_trabalhavel) " \
	+ "and b.numero_cliente = f.numero_cliente " \
	+ "and f.classe < 8 " \
	+ "group by b.municipio,b.bairro ")

Share this post


Link to post
Share on other sites

Gente não sei se aqui é um bom lugar para fazer essa pergunta, é que eu quero fazer um webcrawler em Python e vou armazenar os resultados no banco de dados MySQL, mas eu fiz o download do MySQLdb para Python 2.6 mas eu não consigo importa-lo, pois dá um erro dizendo: DLL load failed: Não foi possível encontrar o módulo especificado. (erro na importação do modulo _mysql)

O meu sistema operacional é windows 7, e se algum puder me ajuda ficarei grato! meu email é Nilson1500@hotmail.com

Share this post


Link to post
Share on other sites

 

e ae gente ^^

 

do aqui a pedidos de milhares de pessoas =) \o/\o/\o/

 

bem, vou tentar aqui, explicar mais ou menos, como trabalhar com python e MySQL beleza? ^^

 

bem, possivelmente, voce estará usando python 2.5, e aqui no meu humilde desktop, não precisei instalar nada para rodar MySQL ^^, alem do servidor, é claro. Mas para quem precisar instalar o modulo, pode encontra-lo aqui http://sourceforge.net/projects/mysql-python.

 

Bem, inicialmente, importaremos o modulo do MySQL

 

 

import MySQLdb
Neste ponto, se aparecer alguma coisa do tipo

 

 

 

É por que voce não possui o módulo instalado, corra para http://sourceforge.net/projects/mysql-python, e instale ele, é super simples ^^

 

Bem, com o módulo instalado e carregado, precisamos criar o objeto

try:
	dbConnection = MySQLdb.connect("localhost", "root", "123456")
except:
	print "Erro ao conectar ao banco de dados"
	exit()
Depois de criado o objeto, precisamos de um outro, que será nosso cursor

dbCursor = dbConnection.cursor()
Pronto, ja temos tudo na mão, agora é só usar. Vamos selecionar o nosso banco.

try:
	dbConnection.select_db("pythondb")
except:
	dbCursor.execute("create database pythondb")
	dbConnection.select_db("pythondb")
	dbCursor.execute("create table usuarios (idusuario int not null auto_increment, nome varchar(15) not null, senha varchar(32) not null, primary key(idusuario));")
Agora, para fazer alguns cadastros fazermos o seguinte: importar o modulo md5 e criar um objeto, para podermos criptografar a senha do usuario tongue.gif

import md5
md5 = md5.new()
md5.update("senha")
dbCursor.execute("insert into usuarios (nome, senha) values ('usuario2', '" + md5.hexdigest() + "')")
Para listar todos os usuarios, utilizamos o seguinte bloco

dbCursor.execute("select idusuario, nome from usuarios order by nome")
resultSet = dbCursor.fetchone()
print resultSet[0], resultSet[1]
Como pode ver, o feltchone() retorna a primeira linha encontrada (isso eh uma mão na roda)

Outro modo é o fetchall(), que retorna tudo

dbCursor.execute("select idusuario, nome from usuarios order by nome")
resultSet = dbCursor.fetchall()
for results in resultSet:
	print results[0], results[1]
bem, é isso ai, facil não?

 

o arquivo completo fica assim

import MySQLdb
import md5

try:
	dbConnection = MySQLdb.connect("localhost", "root", "123456")
except:
	print "Erro ao conectar ao banco de dados"
	exit()
	
dbCursor = dbConnection.cursor()

try:
	dbConnection.select_db("pythondb")
except:
	dbCursor.execute("create database pythondb")
	dbConnection.select_db("pythondb")
	dbCursor.execute("create table usuarios (idusuario int not null auto_increment, nome varchar(15) not null, senha varchar(32) not null, primary key(idusuario));")

md5 = md5.new()

md5.update("123456")
dbCursor.execute("insert into usuarios (nome, senha) values ('usuario1', '" + md5.hexdigest() + "')")
md5.update("abcdef")
dbCursor.execute("insert into usuarios (nome, senha) values ('usuario2', '" + md5.hexdigest() + "')")
md5.update("123abc")
dbCursor.execute("insert into usuarios (nome, senha) values ('usuario3', '" + md5.hexdigest() + "')")

dbCursor.execute("select nome from usuarios order by idusuario")
resultSet = dbCursor.fetchone()
print "-- O nome do primeiro usuario registrado e", resultSet[0]

print "-- Usuarios"
dbCursor.execute("select idusuario, nome from usuarios order by nome")
resultSet = dbCursor.fetchall()
for results in resultSet:
	print results[0], "--", results[1]
salve como mysql_teste.py, e rode em um terminal (cmd): python mysql_teste.py

 

 

[]'s ^^

 

 

Amigo nao sei se aconteceu com alguem, mas comigo os comandos em SQL su funcionaram apos o
dbConnection.commit()

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.