Python fornece várias maneiras de se conectar a um banco de dados MySQL e processar dados. Este artigo descreve três métodos.
Os bancos de dados e usuários MySQL já devem existir antes que você possa usar qualquer um dos métodos a seguir. Para obter informações sobre como gerenciar bancos de dados MySQL usando o cPanel, consulte este artigo.
Conectando-se ao MySQL usando Python
Antes de acessar bancos de dados MySQL usando Python, você deve instalar um (ou mais) dos seguintes pacotes em um ambiente virtual:
- cliente mysql :Este pacote contém o MySQLdb módulo. Ele é escrito em C e é um dos pacotes Python mais usados para MySQL.
- mysql-connector-python :Este pacote contém o mysql.connector módulo. Ele é escrito inteiramente em Python.
- PyMySQL :Este pacote contém o pymysql módulo. Ele é escrito inteiramente em Python.
Todos esses três pacotes usam a API de banco de dados SQL portátil do Python. Isso significa que, se você alternar de um módulo para outro, poderá reutilizar quase todo o código existente (o exemplo de código abaixo demonstra como fazer isso).
Configurando o ambiente virtual Python e instalando um pacote MySQL
Para configurar o ambiente virtual Python e instalar um pacote MySQL, siga estas etapas:
- Faça login em sua conta usando SSH.
- Para criar um ambiente virtual, digite os seguintes comandos:
cd ~ virtualenv sqlenv
- O env virtual comando cria um ambiente virtual chamado sqlenv , e os comandos subsequentes neste procedimento assumem que o ambiente é denominado sqlenv . Você pode usar qualquer nome de ambiente que desejar, mas certifique-se de substituir todas as ocorrências de sqlenv com seu próprio nome de ambiente.
- Se estiver executando uma versão alternativa do Python (por exemplo, você configurou manualmente uma versão mais recente do Python para sua conta conforme descrito neste artigo), você pode especificar essa versão para o ambiente virtual. Por exemplo, para instalar uma versão do Python 3.8 configurada pelo usuário no ambiente virtual, você pode usar o seguinte comando:
virtualenv -p /home/username/bin/python3.8 sqlenv
-
Para ativar o ambiente virtual, digite o seguinte comando:
source sqlenv/bin/activate
O prompt de comando agora começa com (sqlenv) para indicar que você está trabalhando em um ambiente virtual Python. Todos os comandos a seguir neste procedimento pressupõem que você esteja trabalhando no ambiente virtual. Se você sair da sua sessão SSH (ou desativar o ambiente virtual usando o desativar comando), certifique-se de reativar o ambiente virtual antes de seguir as etapas abaixo e executar o código de exemplo. -
Para atualizar pip no ambiente virtual, digite o seguinte comando:
pip install -U pip
-
Digite o comando para o pacote que você deseja instalar:
- Para instalar o mysqlclient pacote, digite o seguinte comando:
pip install mysqlclient
-
Para instalar o mysql-connector-python pacote, digite o seguinte comando:
pip install mysql-connector-python
-
Para instalar o pymysql pacote, digite o seguinte comando:
pip install pymysql
- Para instalar o mysqlclient pacote, digite o seguinte comando:
Amostra de código
Depois de instalar um pacote MySQL no ambiente virtual, você estará pronto para trabalhar com bancos de dados reais. O exemplo de código Python a seguir demonstra como fazer isso, bem como como é fácil alternar entre as diferentes implementações de pacotes SQL. O código de exemplo funciona com Python 2.7 e Python 3.x.
Em seu próprio código, substitua nome de usuário com o nome de usuário do banco de dados MySQL, senha com a senha do usuário do banco de dados e dbname com o nome do banco de dados:
#!/usr/bin/python from __future__ import print_function hostname = 'localhost' username = 'username' password = 'password' database = 'dbname' # Simple routine to run a query on a database and print the results: def doQuery( conn ) : cur = conn.cursor() cur.execute( "SELECT fname, lname FROM employee" ) for firstname, lastname in cur.fetchall() : print( firstname, lastname ) print( "Using mysqlclient (MySQLdb):" ) import MySQLdb myConnection = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using mysql.connector:" ) import mysql.connector myConnection = mysql.connector.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using pymysql:" ) import pymysql myConnection = pymysql.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close()
Este exemplo cria uma série de Connection objetos que abrem o mesmo banco de dados usando diferentes módulos MySQL. Como todos os três módulos MySQL usam a interface da API do banco de dados SQL portátil, eles podem usar o código no doQuery() funcionar sem nenhuma modificação.
Quando você tem uma Conexão objeto associado a um banco de dados, você pode criar um Cursor objeto. O Cursor O objeto permite que você execute o execute() que, por sua vez, permite que você execute instruções SQL brutas (neste caso, um SELECT consulta em uma tabela chamada employee ).
Como você pode ver, a API de banco de dados SQL portátil do Python torna muito fácil alternar entre os módulos MySQL em seu código. No exemplo acima, as únicas alterações de código necessárias para usar um módulo diferente são na importação e conectar declarações.
Mais informações
- Para obter mais informações sobre a API de banco de dados SQL portátil do Python, visite https://www.python.org/dev/peps/pep-0249.
- Para mais informações sobre o mysqlclient pacote, visite https://pypi.org/project/mysqlclient.
- Para obter mais informações sobre o mysql-connector-python pacote, visite https://pypi.python.org/pypi/mysql-connector-python.
- Para obter mais informações sobre o PyMySQL pacote, visite https://pypi.python.org/pypi/PyMySQL.