Skip to main content

Provides connections pool for work with database

Project description

classic-db-pool — это библиотека для управления соединениями с базой данных эффективным способом. Она позволяет создавать пул соединений с базой данных, который может использоваться несколькими запросами или процессами одновременно. Это гарантирует, что ваше приложение всегда имеет доступ к готовому к использованию соединению без необходимости ожидания первоначальной настройки соединения каждый раз.

Вклад

Этот проект является форком проекта Embrace.

Установка

Для установки classic-db-pool вы можете использовать pip:

pip install classic-db-pool

Использование

Вот несколько примеров использования classic-db-pool.

Создание пула соединений

from classic.db_utils import ConnectionPool
import pymssql


pool = ConnectionPool(
    lambda: pymssql.connect(
        server='server',
        database='database',
        user='user',
        password='password',
    ),
    limit=1,
)


with pool.connect() as conn:
    conn.cursor().execute('SQL query')

Использование декоратора takes_connection

Декоратор takes_connection позволяет автоматически получать соединение из атрибута объекта и передавать его в метод. Это упрощает работу с соединениями в классах.

from classic.db_utils import takes_connection

class SomeClass:
    def __init__(self, connect):
        self.connect = connect  # метод для получения соединения
    
    @takes_connection
    def get_user(self, user_id, connection):
        with connection.cursor() as cur:
            cur.execute('SELECT * FROM users WHERE id = %s', (user_id,))
            return cur.fetchone()

# Можно настроить имена атрибута и параметра
class CustomClass:
    def __init__(self, db_connect):
        self.db_connect = db_connect
    
    @takes_connection(connect_attr='db_connect', connection_param='conn')
    def get_user(self, user_id, conn):
        with conn.cursor() as cur:
            cur.execute('SELECT * FROM users WHERE id = %s', (user_id,))
            return cur.fetchone()

Декоратор принимает следующие параметры:

  • connect_attr (по умолчанию 'connect'): имя атрибута объекта, содержащего метод для получения соединения
  • connection_param (по умолчанию 'connection'): имя параметра, через который соединение будет передано в метод

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

classic_db_utils-2.0.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

classic_db_utils-2.0.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file classic_db_utils-2.0.0.tar.gz.

File metadata

  • Download URL: classic_db_utils-2.0.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for classic_db_utils-2.0.0.tar.gz
Algorithm Hash digest
SHA256 94fb0a907c2776797c15e71071c1c6fd049c17266ff2a781fbfc60a7f1afc46c
MD5 8683f7fec9e090e7d4d49ff0d6f5d8c5
BLAKE2b-256 eabcc1dc5d7721366dbbb39946e306157f61c5269737b0bc166ef4cee8c7b7f3

See more details on using hashes here.

File details

Details for the file classic_db_utils-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for classic_db_utils-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee159701f4f99c484acb940fd3d2312373bfe964fed039b99326196bd5bc9d55
MD5 4b09f17d21c3d5f451c73ca3205e39ca
BLAKE2b-256 83644b8759f4decd4e16c1db227019da98336c0146a92a2952cebe139c070ff1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page