Python драйвер базы данных

Содержание
  1. Python: десять лучших пакетов драйверов для баз данных
  2. Пакеты драйверов для баз данных на языке Python
  3. redis-py — клиент базы данных Redis на Python
  4. PyMySQL — драйвер Pure Python MySQL, совместимый с mysql-python
  5. asyncpg — быстрая клиентская библиотека Python / asyncio для базы данных PostgreSQL
  6. psycopg2 — самый популярный адаптер PostgreSQL для Python
  7. mysqlclient — поддерживающий Python 3 форк библиотеки mysql-python
  8. cassandra-python-driver — драйвер Python для Cassandra
  9. motor — аснхронный драйвер Python для MongoDB
  10. pymssql — простой интерфейс для Microsoft SQL Server
  11. HappyBase — удобная библиотека для Apache HBase
  12. PyMongo — официальный клиент Python для MongoDB
  13. SuperSQLite — улучшенная библиотека SQLite
  14. Шаг 3. Подтверждение концепции, подразумевающее подключение к SQL с помощью pyodbc
  15. Подключение
  16. Выполнение запроса
  17. Вставка строки
  18. Azure Active Directory и строка подключения
  19. Пример строки подключения для использования с интерактивной проверкой подлинности Azure Active Directory
  20. Дальнейшие действия
  21. Шаг 3. Подтверждение концепции, подразумевающее подключение к SQL с помощью pymssql
  22. Шаг 1. Подключение
  23. Шаг 2. Выполнение запроса
  24. Шаг 3. Вставка строки
  25. Шаг 4. Откат транзакции
  26. Дальнейшие действия

Python: десять лучших пакетов драйверов для баз данных

Хорошо известно, что Python это модульный язык, в котором импортируется множество полезных операций из его стандартной библиотеки. Очевидно, что без этого программировать на Python совершенно невозможно. Во многом популярность этого языка основана на открытом коде и том, что вся разработка ведется под лицензией OSI (Open Software License). Вы можете совершенно бесплатно скачать и установить на любом компьютере все инструменты Python. Это все доступно в различных сборках, при этом поддерживается 21 операционная система, что делает язык Python поистине универсальным.

Читайте также:  METANIT.COM

Пакеты драйверов для баз данных на языке Python

Ниже приведен список Python-библиотек драйверов для различных баз данных, полезный любому программисту, который интересуется этим языком.

redis-py — клиент базы данных Redis на Python

redis-py 3.5.x — это последняя версия, которая поддерживала Python 2. Обновления безопасности, совместимые с Python 2, выходили вплоть до 20 августа 2020 года. Для redis-py 4.0, следующей основной версии, уже требуется Python не ниже версии 3.5.

PyMySQL — драйвер Pure Python MySQL, совместимый с mysql-python

Этот пакет содержит клиентскую библиотеку Python MySQL, основанную на стандарте PEP 249.

Большинство открытых API-интерфейсов совместимы с mysqlclient и MySQLdb.

ЗАМЕЧАНИЕ: PyMySQL не поддерживает низкоуровневые API-запросы, которые есть в _mysql, а именно data_seek, store_result и use_result . Вы должны использовать высокоуровневые API-запросы, определенные в стандарте PEP 249. Но некоторые API-запросы, такие как autocommit и ping , все же поддерживаются, поскольку PEP 249 никак не регламентирует их применение.

asyncpg — быстрая клиентская библиотека Python / asyncio для базы данных PostgreSQL

Это библиотека интерфейса базы данных, разработанная специально для PostgreSQL и Python / asyncio.

asyncpg — это эффективная и чистая реализация бинарного протокола сервера баз данных PostgreSQL для использования с асинхронным фреймворком Python asyncio. Вы можете узнать больше об asyncpg вот здесь.

asyncpg требует Python версии 3.5 или новее и поддерживается для PostgreSQL начиная с версии 9.2 и заканчивая версией 12.

psycopg2 — самый популярный адаптер PostgreSQL для Python

Psycopg — самый популярный адаптер базы данных PostgreSQL для языка программирования Python. Его основными особенностями являются полная реализация спецификации Python DB API 2.0 и безопасность потоков (несколько потоков могут использовать одно и то же соединение). Он был разработан для многопоточных приложений, которые создают и уничтожают множество связей и выполняют большое количество одновременных операций INSERT или UPDATE.

mysqlclient — поддерживающий Python 3 форк библиотеки mysql-python

В этом проекте добавлена ​​поддержка Python 3 и исправлен ряд ошибок. Мы надеемся, что этот форк будет снова объединен со своей родительской библиотекой. Это было бы так же логично, как объединение дистрибутива и программы для его установки.

cassandra-python-driver — драйвер Python для Cassandra

Современная, многофункциональная и гибконастраиваемая клиентская библиотека Python для Apache Cassandra (1.2+) и DataStax Enterprise (3.1+). Она использует исключительно бинарный протокол Cassandra и язык запросов Cassandra Query Language v3.

motor — аснхронный драйвер Python для MongoDB

Motor — это полнофункциональный драйвер MongoDB для Python Tornado и других асинхронных приложений.

pymssql — простой интерфейс для Microsoft SQL Server

Простой интерфейс баз данных на языке Python, который строится поверх FreeTDS и предоставляет интерфейс Python DB-API (PEP-249) для Microsoft SQL Server.

HappyBase — удобная библиотека для Apache HBase

PyMongo — официальный клиент Python для MongoDB

SuperSQLite — улучшенная библиотека SQLite

Это многофункциональная библиотека Python, предназначенная для использования SQLite в Python компанией Plasticity. Построена она на основе apsw.

Данная библиотека предназначена для замены встроенного в Python API SQLite, но без каких-либо ограничений. Она предлагает уникальные функции, такие как удаленная потоковая передача по HTTP и объединение расширений, таких как JSON, R-Trees (геопространственное индексирование), а также полнотекстовый поиск.

SuperSQLite также содержит предварительно скомпилированные собственные бинарные файлы для SQLite и всех его расширений (практически для любой платформы). Это сделано чтобы избежать возможных ошибок компилятора C / C ++ во время установки.

Источник

Шаг 3. Подтверждение концепции, подразумевающее подключение к SQL с помощью pyodbc

Этот пример является подтверждением концепции. Пример кода упрощен для ясности и для него не гарантируется соблюдение рекомендаций корпорации Майкрософт.

Чтобы приступить к работе, выполните следующий пример скрипта. Создайте файл с именем test.py и добавляйте фрагменты кода по ходу работы.

Подключение

import pyodbc # Some other example server values are # server = 'localhost\sqlexpress' # for a named instance # server = 'myserver,port' # to specify an alternate port server = 'tcp:myserver.database.windows.net' database = 'mydb' username = 'myusername' password = 'mypassword' # ENCRYPT defaults to yes starting in ODBC Driver 18. It's good to always specify ENCRYPT=yes on the client side to avoid MITM attacks. cnxn = pyodbc.connect('DRIVER=;SERVER='+server+';DATABASE='+database+';ENCRYPT=yes;UID='+username+';PWD='+ password) cursor = cnxn.cursor() 

Выполнение запроса

Функция cursor.execute может использоваться для извлечения результирующего набора из запроса к базе данных SQL. Эта функция принимает запрос и возвращает результирующий набор, по которому может быть выполнена итерация с использованием cursor.fetchone().

#Sample select query cursor.execute("SELECT @@version;") row = cursor.fetchone() while row: print(row[0]) row = cursor.fetchone() 

Вставка строки

В этом примере вы узнаете, как безопасно выполнить инструкцию INSERT и передать параметры. Параметры защищают приложение от внедрения кода SQL.

#Sample insert query count = cursor.execute(""" INSERT INTO SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) VALUES (. )""", 'SQL Server Express New 20', 'SQLEXPRESS New 20', 0, 0, CURRENT_TIMESTAMP).rowcount cnxn.commit() print('Rows inserted: ' + str(count)) 

Azure Active Directory и строка подключения

pyODBC использует драйвер Microsoft ODBC для SQL Server. Если ваша версия драйвера ODBC — 17.1 или более поздняя, интерактивный режим Azure Active Directory драйвера ODBC можно использовать через pyODBC.

Этот интерактивный параметр работает, если Python и pyODBC разрешают драйверу ODBC отображать диалоговое окно. Этот параметр доступен только в ОС Windows.

Пример строки подключения для использования с интерактивной проверкой подлинности Azure Active Directory

В следующем примере представлена строка подключения ODBC, определяющая интерактивную проверку подлинности Azure Active Directory.

См. сведения о параметрах проверки подлинности драйвера ODBC в руководстве по использованию Azure Active Directory с драйвером ODBC.

Дальнейшие действия

Дополнительную информацию можно найти в Центре разработчика Python.

Источник

Шаг 3. Подтверждение концепции, подразумевающее подключение к SQL с помощью pymssql

Этот пример следует рассматривать только как подтверждение концепции. Пример кода упрощен для ясности и он не обязательно рекомендуется к использованию корпорацией Майкрософт.

Шаг 1. Подключение

Функция pymssql.connect используется для подключения к базе данных SQL.

 import pymssql conn = pymssql.connect(server='yourserver.database.windows.net', user='yourusername@yourserver', password='yourpassword', database='AdventureWorks') 

Шаг 2. Выполнение запроса

Функция cursor.execute может использоваться для извлечения результирующего набора из запроса к базе данных SQL. Эта функция фактически принимает любой запрос и возвращает результирующий набор, по которому может быть выполнена итерация с использованием cursor.fetchone().

 import pymssql conn = pymssql.connect(server='yourserver.database.windows.net', user='yourusername@yourserver', password='yourpassword', database='AdventureWorks') cursor = conn.cursor() cursor.execute('SELECT c.CustomerID, c.CompanyName,COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC;') row = cursor.fetchone() while row: print(str(row[0]) + " " + str(row[1]) + " " + str(row[2])) row = cursor.fetchone() 

Шаг 3. Вставка строки

В этом примере вы узнаете, как безопасно выполнить инструкцию INSERT и передать параметры. Передача параметров в виде значений защищает приложение от внедрения SQL-кода.

 import pymssql conn = pymssql.connect(server='yourserver.database.windows.net', user='yourusername@yourserver', password='yourpassword', database='AdventureWorks') cursor = conn.cursor() cursor.execute("INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.ProductID VALUES ('SQL Server Express', 'SQLEXPRESS', 0, 0, CURRENT_TIMESTAMP)") row = cursor.fetchone() while row: print("Inserted Product ID : " +str(row[0])) row = cursor.fetchone() conn.commit() conn.close() 

Шаг 4. Откат транзакции

Этот пример кода демонстрирует использование транзакций, в которых можно:

  • начать транзакцию;
  • вставить строку данных;
  • откатить транзакцию для отмены вставки.
 import pymssql conn = pymssql.connect(server='yourserver.database.windows.net', user='yourusername@yourserver', password='yourpassword', database='AdventureWorks') cursor = conn.cursor() cursor.execute("BEGIN TRANSACTION") cursor.execute("INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.ProductID VALUES ('SQL Server Express New', 'SQLEXPRESS New', 0, 0, CURRENT_TIMESTAMP)") conn.rollback() conn.close() 

Дальнейшие действия

Дополнительную информацию можно найти в Центре разработчика Python.

Источник

Оцените статью