معرفی شرکت ها


django-query-utils-0.0.5


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Handful utils to work with raw queries in Django
ویژگی مقدار
سیستم عامل -
نام فایل django-query-utils-0.0.5
نام django-query-utils
نسخه کتابخانه 0.0.5
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Savva Surenkov
ایمیل نویسنده savva@surenkov.space
آدرس صفحه اصلی https://github.com/surenkov/django-query-utils
آدرس اینترنتی https://pypi.org/project/django-query-utils/
مجوز -
![PyPI Version](https://img.shields.io/pypi/v/django-query-utils) ## PostgreSQL locks Django already exposes row-level locks with `QuerySet.select_for_update()` method. What's missing is table-level and advisory locks: ``` python from django_query_utils.postgres.locks import table_lock, LockMode with table_lock("auth_user", "auth_group", mode=LockMode.Exclusive, timeout=10): """ Perform some esclusive operations on locked tables """ # Set a lock for Django model tables from django.contrib.auth import models with table_lock.for_model(models.User, models.Group, **kwargs): ... ``` [Advisory locks support](https://www.postgresql.org/docs/current/explicit-locking.html#ADVISORY-LOCKS) ``` python from django_query_utils.postgres.locks import advisory_lock lock_id = 42 with advisory_lock(lock_id, using="default", nowait=True): """ Perform some actions with locked resources """ # Create a more meaningful lock. # Postgres spports either a single `bigint` or (`int`, `int`) pair as a lock_id. # `advisory_lock` tries to convert any strings (or bigger ints) to postgres format # either with hashing and bit shifts. from django.db import transaction from django.contrib.auth.models import User user = User.objects.get(id=42) with transaction.atomic(), advisory_lock("user:act", user.id, timeout=10): """ Perform some actions with locked resources. Timeout is only awailable within a transaction block. """ ``` ## PostgreSQL full-text search support for `django-filter` ``` python from django_query_utils.postgres.filters import FullTextSearchFilter class MyFilterSet(django_filters.FilterSet): search = FullTextSearchFilter( vector=("field_1", "field__subfield"), # or `SearchVector` instance search_type="phrase", config="french", ) ``` With `search_type="custom"` you may pass custom query expressions ``` python class MyFilterSet(django_filters.FilterSet): search = FullTextSearchFilter( vector=("first_name", "last_name", "email"), # or `SearchVector` instance search_type="custom", ) qs = User.objects.all() filters = MyFilterSet({"search": "(John | Mike | Dan) Doe"}, qs) ``` ## Raw Query wrappers: ``` python from django_query_utils import Query, query_context query = Query("select first_name, last_name from auth_user where email = %(email)s", {"email": "jdoe@example.com"}) with query_context(using="default") as c: results = list(c.execute(query)) assert results == [{"first_name": "John", "last_name": "Doe"}] ``` Different result materializers: ``` python from django_query_utils import PlainMaterializer, Query, query_context query = Query( "select first_name, last_name from auth_user where email = %(email)s", {"email": "jdoe@example.com"}, materializer=PlainMaterializer(), ) with query_context(using="default") as c: results = list(c.execute(query)) assert results == [("John", "Doe")] ``` More sophisticated transformers to kwarg classes: ``` python from dataclasses import dataclass @dataclass class MyUser: first_name: str last_name: str with query_context() as c: results = c.execute(query.as_type(MyUser)) assert list(results) == [MyUser(first_name="John", last_name="Doe")] ``` (PostgreSQL only) `psycopg2.sql` query formatting support: ``` python from psycopg2 import sql raw_q = sql.SQL("select first_name, last_name from auth_user where email = {}") query = Query(raw_q.format(sql.Literal("jdoe@example.com"))) ... ```


نیازمندی

مقدار نام
>=3.0 django
- black
==0.961 mypy
==4.0.* flake8
==7.0.* pytest
==2.1.* pytest-reraise
- django-stubs[compatible-mypy]
<5,>=4.5 pytest-django
- django-query-utils[postgres]
>=2.0 django-filter
<3,>=2.7 psycopg2-binary


زبان مورد نیاز

مقدار نام
>=3.8 Python


نحوه نصب


نصب پکیج whl django-query-utils-0.0.5:

    pip install django-query-utils-0.0.5.whl


نصب پکیج tar.gz django-query-utils-0.0.5:

    pip install django-query-utils-0.0.5.tar.gz