Python + MySQL – Criando um CRUD completo

A conexão com banco de dados é algo comum e utilizado em várias aplicações. Vamos ver como realizar a conexão com o banco de dados MySQL e como fazer operações básicas utilizando o Python. Para exemplificar, vamos criar um CRUD (create, read, update e delete) completo.

Pré-requisitos

Como pré-requisito para utilizar o exemplo deste artigo, temos:

  • python3 – Compilador da linguagem Python 3.
  • pip – Sistema de gerenciamento de pacotes para o Python.

Para realizar a conexão com nosso banco MySQL, vamos utilizar o driver do mysql para o Python. Já com o python3 e o pip devidamente instalados, realize a instalação do drive com o comando abaixo.

python3 -m pip install mysql-connector-python

Criando o banco de dados MySQL

Vamos utilizar um banco chamado teste, com a tabela users. Abra o terminal do mysql e crie o banco de dados com o comando.

create database teste;

Depois acesse o banco criado com o comando.

use teste;

E crie a tabela users com o comando.

create table users (
  id int not null auto_increment primary key,
  name varchar(100) not null,
  email varchar(100) not null,
  created datetime not null
);

Visualize a tabela criada com o comando.

desc users;

Para ver mais sobre o MySQL veja o artigo: https://irias.com.br/blog/mysql-comandos-basicos/

Create

Após criar nosso banco, vamos inserir dados utilizando o Python. Crie o arquivo create.py e insira o código abaixo no mesmo.

# -*- encoding: utf-8 -*-

import mysql.connector
import datetime

connection = mysql.connector.connect(
  host="localhost",
  user="usuariobancodados",
  password="senhausuario",
  database="bancodados"
)

cursor = connection.cursor()

sql = "INSERT INTO users (name, email, created) VALUES (%s, %s, %s)"
data = (
  'Primeiro Usuário',
  'primeirousuario@teste.com.br',
  datetime.datetime.today()
)

cursor.execute(sql, data)
connection.commit()

userid = cursor.lastrowid

cursor.close()
connection.close()

print("Foi cadastrado o novo usuário de ID:", userid)

No código acima, primeiro importamos o driver do MySQL para o Python. Depois iniciamos a conexão, informando os dados básicos para conexão. Então criamos nosso cursor, qual faremos as operações. Atribuímos nossa query de insert a variável sql e nossos dados que queremos inserir a nossa variável data.

Por fim utilizamos o comando execute, para executar a query e o commit para efetivá-la. Também utilizamos o comando lastrowid, para recuperar o ID da última linha, que no caso é a que acabamos de inserir. No final imprimimos uma mensagem no terminal.

Para utilizar o script, use no terminal Linux o comando python3.

python3 create.py

Depois no banco de dados utilize o comando abaixo para visualizar o usuário que foi criado.

select * from users; 

 Read

Após inserir dados em nossa tabela com o Python, vamos fazer a leitura com o select. Crie o arquivo read.py com o código abaixo.

# -*- encoding: utf-8 -*-

import mysql.connector
import datetime

connection = mysql.connector.connect(
  host="localhost",
  user="usuariobancodados",
  password="senhausuario",
  database="bancodados"
)

cursor = connection.cursor()

sql = "SELECT * FROM users"

cursor.execute(sql)
results = cursor.fetchall()

cursor.close()
connection.close()

for result in results:
  print(result)

O código é parecido com o anterior, mas agora utilizamos a função fetchall para recuperar todos os resultados da query SQL executada. No final utilizamos o comando for, para percorrer os resultados e imprimir linha por linha.

Rode o script com o comando.

python3 read.py

Update

Agora vamos atualizar as informações em nosso banco de dados. Nosso código será similar ao de criação, a diferença está na query SQL que ao invés de insert vamos utilizar o update.

# -*- encoding: utf-8 -*-

import mysql.connector
import datetime

connection = mysql.connector.connect(
  host="localhost",
  user="usuariobancodados",
  password="senhausuario",
  database="bancodados"
)

cursor = connection.cursor()

sql = "UPDATE users SET name = %s, email = %s WHERE id = %s"
data = (
  'Primeiro Usuário Editado',
  'primeirousuarioeditado@teste.com.br',
  1
)

cursor.execute(sql, data)
connection.commit()

recordsaffected = cursor.rowcount

cursor.close()
connection.close()

print(recordsaffected, " registros alterados")

Execute o script com o comando.

python3 update.py

Utilizando novamente o script read.py podemos ver nosso registro editado.

Delete

Por último temos o deletar, que funciona do mesmo modo do update. Ele também se diferencia pela query SQL, agora utilizamos o delete.

# -*- encoding: utf-8 -*-

import mysql.connector
import datetime

connection = mysql.connector.connect(
  host="localhost",
  user="usuariobancodados",
  password="senhausuario",
  database="bancodados"
)

cursor = connection.cursor()

sql = "DELETE FROM users WHERE id = %s"
data = (2,)

cursor.execute(sql, data)
connection.commit()

recordsaffected = cursor.rowcount

cursor.close()
connection.close()

print(recordsaffected, " registros excluídos")
python3 delete.py

Assim chegamos no fim deste artigo que foi um tutorial bem simples para utilizar o banco de dados MySQL com  Python.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *