23.4. Integração de Python com Banco de Dados: Consulta de Dados
Python, uma linguagem de programação de alto nível, é amplamente utilizado no desenvolvimento de aplicações web e desktop. Uma das suas principais vantagens é a capacidade de interagir com uma variedade de bancos de dados, permitindo a manipulação e consulta de dados. Neste capítulo, vamos explorar a integração de Python com banco de dados e como realizar consultas de dados.
Conexão Python com Banco de Dados
Python fornece várias bibliotecas para conectar-se com diferentes tipos de bancos de dados. O pacote Python Database API (DB-API) é um dos mais comuns para conectar Python com bancos de dados relacionais, como MySQL, SQLite e PostgreSQL.
Para estabelecer uma conexão com um banco de dados, você precisa instalar o driver apropriado para o banco de dados que está usando e, em seguida, importar o módulo do driver no seu código Python. Por exemplo, para conectar-se a um banco de dados SQLite, você usaria:
import sqlite3 con = sqlite3.connect('mydatabase.db')
Isso cria uma conexão com o banco de dados 'mydatabase.db'.
Consulta de Dados
Após estabelecer uma conexão com o banco de dados, você pode realizar consultas SQL para manipular e recuperar dados. Para fazer isso, você precisa criar um objeto cursor usando o método cursor() do objeto de conexão. Um cursor é um objeto que permite interagir com o banco de dados, executando comandos SQL e recuperando resultados.
cur = con.cursor()
Agora, você pode usar o método execute() do objeto cursor para executar comandos SQL. Por exemplo, para selecionar todos os registros de uma tabela chamada 'users', você faria:
cur.execute("SELECT * FROM users")
Para recuperar os resultados de uma consulta, você pode usar os métodos fetchone(), fetchmany() ou fetchall() do objeto cursor. fetchone() retorna o próximo registro na consulta, fetchmany() retorna o próximo conjunto de registros e fetchall() retorna todos os registros como uma lista.
rows = cur.fetchall() for row in rows: print(row)
Encerrando a Conexão
É importante fechar a conexão com o banco de dados quando você terminar de usá-lo. Isso libera recursos do sistema e garante que quaisquer alterações pendentes sejam salvas no banco de dados. Você pode fechar a conexão usando o método close() do objeto de conexão.
con.close()
Em resumo, Python oferece uma interface fácil de usar para se conectar a bancos de dados e consultar dados. Com a prática, você pode se tornar eficiente na manipulação de dados usando Python e SQL.
Trabalhando com Django
Django, um framework de desenvolvimento web de alto nível em Python, também oferece uma maneira robusta e eficiente de trabalhar com bancos de dados. Com o Django, você pode definir modelos que representam suas tabelas de banco de dados e, em seguida, usar a API de banco de dados do Django para consultar esses modelos.
A consulta de dados no Django é feita através da criação de objetos QuerySet, que são essencialmente uma representação de uma consulta de banco de dados. Os QuerySets são preguiçosos, o que significa que eles só são avaliados quando são necessários. Isso permite que você crie consultas complexas sem se preocupar com a eficiência.
Por exemplo, para recuperar todos os usuários de uma tabela 'User', você faria:
from myapp.models import User users = User.objects.all()
Isso retornará um QuerySet contendo todos os usuários. Você pode então iterar sobre este QuerySet para trabalhar com cada usuário individualmente.
Em resumo, Django oferece uma maneira poderosa e eficiente de trabalhar com bancos de dados em Python. Com a prática, você pode se tornar eficiente na manipulação de dados usando Django e SQL.