Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да се свържете с MySQL с помощта на Python

Python предоставя няколко начина за свързване към MySQL база данни и обработка на данни. Тази статия описва три метода.

MySQL базите данни и потребителите трябва вече да съществуват, преди да можете да използвате някой от следните методи. За информация как да управлявате MySQL бази данни с помощта на cPanel, моля, вижте тази статия.

Свързване с MySQL с помощта на Python

Преди да имате достъп до MySQL бази данни с помощта на Python, трябва да инсталирате един (или повече) от следните пакети във виртуална среда:

  • mysqlclient :Този пакет съдържа MySQLdb модул. Написан е на C и е един от най-често използваните Python пакети за MySQL.
  • mysql-connector-python :Този пакет съдържа mysql.connector модул. Написан е изцяло на Python.
  • PyMySQL :Този пакет съдържа pymysql модул. Написан е изцяло на Python.

И трите от тези пакета използват API на преносима SQL база данни на Python. Това означава, че ако превключите от един модул към друг, можете да използвате повторно почти целия си съществуващ код (пробата на кода по-долу показва как да направите това).

Настройване на виртуалната среда на Python и инсталиране на MySQL пакет

За да настроите виртуалната среда на Python и да инсталирате MySQL пакет, следвайте тези стъпки:

  1. Влезте в акаунта си чрез SSH.
  2. За да създадете виртуална среда, въведете следните команди:
    cd ~
    virtualenv sqlenv
    
    • virtualenv командата създава виртуална среда с име sqlenv и следващите команди в тази процедура предполагат, че средата е с име sqlenv . Можете да използвате всяко име на среда, което искате, но се уверете, че сте заменили всички срещания на sqlenv със собственото си име на средата.
    • Ако използвате алтернативна версия на Python (например ръчно сте конфигурирали по-нова версия на Python за вашия акаунт, както е описано в тази статия), можете да посочите тази версия за виртуалната среда. Например, за да инсталирате конфигурирана от потребителя версия на Python 3.8 във виртуалната среда, можете да използвате следната команда:
      virtualenv -p /home/username/bin/python3.8 sqlenv
      
  3. За да активирате виртуалната среда, въведете следната команда:

    source sqlenv/bin/activate
    Командният ред сега започва с (sqlenv) за да посочите, че работите във виртуална среда на Python. Всички следните команди в тази процедура предполагат, че работите във виртуална среда. Ако излезете от вашата SSH сесия (или деактивирате виртуалната среда, като използвате деактивиране команда), уверете се, че сте активирали отново виртуалната среда, преди да следвате стъпките по-долу и да стартирате примерния код.
  4. За да актуализирате pip във виртуалната среда въведете следната команда:

    pip install -U pip
  5. Въведете командата за пакета, който искате да инсталирате:

    • За да инсталирате mysqlclient пакет, въведете следната команда:
      pip install mysqlclient
    • За да инсталирате mysql-connector-python пакет, въведете следната команда:

      pip install mysql-connector-python
    • За да инсталирате pymysql пакет, въведете следната команда:

      pip install pymysql
Проба на код

След като инсталирате MySQL пакет във виртуалната среда, вие сте готови да работите с действителни бази данни. Следващият примерен код на Python демонстрира как да направите това, както и колко лесно е да превключвате между различните реализации на SQL пакет. Примерният код работи с Python 2.7 и Python 3.x.

Във вашия собствен код заменете потребителско име с потребителското име на базата данни MySQL, парола с потребителска парола на базата данни и dbname с името на базата данни:

#!/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()

Този пример създава поредица от Свързване обекти, които отварят една и съща база данни, използвайки различни MySQL модули. Тъй като и трите MySQL модула използват API интерфейса на преносима SQL база данни, те могат да използват кода в doQuery() функция без никакви модификации.

Когато имате Връзка обект, свързан с база данни, можете да създадете Курсор обект. Курсорът обектът ви позволява да стартирате execute() метод, който от своя страна ви позволява да изпълнявате необработени SQL изрази (в този случай SELECT заявка към таблица с име служител ).

Както можете да видите, преносимият API на SQL база данни на Python прави много лесно превключването между MySQL модули във вашия код. В примера по-горе единствените промени в кода, необходими за използване на различен модул, са импортът исвържете изявления.

Повече информация

  • За повече информация относно API на преносим SQL база данни на Python, моля, посетете https://www.python.org/dev/peps/pep-0249.
  • За повече информация относно mysqlclient пакет, моля, посетете https://pypi.org/project/mysqlclient.
  • За повече информация относно mysql-connector-python пакет, моля, посетете https://pypi.python.org/pypi/mysql-connector-python.
  • За повече информация относно PyMySQL пакет, моля, посетете https://pypi.python.org/pypi/PyMySQL.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се присъедините към MySQL и Postgres в материализиран изглед на живо

  2. Най-ефективният начин за получаване на броя на редовете в таблицата

  3. Функция MySQL LOG10() – Връщане на логаритъм на база 10 на стойност

  4. Как мога да поправя MySQL грешка #1064?

  5. CURDATE() Примери – MySQL