Skip to main content

Python uchun oddiy PostgreSQL wrapper

Project description

PostgresDB3

PyPI Version Python Version License

PostgresDB3 — PostgreSQL bilan ishlash uchun oddiy, qulay va yengil Python wrapper.

Kutubxona quyidagilarni qo‘llab-quvvatlaydi:

  • Sync va Async ishlash
  • CRUD operatsiyalari
  • Query builder (where, join, group_by, order_by, limit, offset)
  • Kengaytirilgan filterlar (gt, lt, like, ilike, in, isnull)
  • Raw SQL bajarish
  • Sodda ORM tizimi

O‘rnatish

pip install postgresdb3

Sync foydalanish

from postgresdb3 import PostgresDB

db = PostgresDB(
    database="mydb",
    user="postgres",
    password="mypassword"
)

# Jadval yaratish
db.create("users", "id SERIAL PRIMARY KEY, name VARCHAR(100), age INT")

# Qator qo‘shish
db.insert("users", "name, age", ("Ali", 25))

# Barcha ma'lumotlar
users = db.select("users")

# Shart bilan qidirish
adults = db.select("users", where={"age__gt": 18})

# Tartiblash
users = db.select("users", order_by="age DESC")

# Yangilash
db.update("users", "age", 26, "name", "Ali")

# O‘chirish
db.delete("users", "name", "Ali")

db.close()

Async foydalanish

import asyncio
from postgresdb3 import AsyncPostgresDB

async def main():

    db = AsyncPostgresDB(
        database="mydb",
        user="postgres",
        password="mypassword"
    )

    await db.create("users", "id SERIAL PRIMARY KEY, name VARCHAR(100), age INT")

    await db.insert("users", "name, age", ["Ali", 25])

    users = await db.select("users")

    adults = await db.select("users", where={"age__gt": 18})

    await db.update("users", "age", 26, "name", "Ali")

    await db.delete("users", "name", "Ali")

    await db.close_pool()

asyncio.run(main())

ORM foydalanish

PostgresDB3 oddiy ORM tizimini ham taqdim etadi.

Sync ORM

from postgresdb3 import PostgresDB
from postgresdb3.orm import Model
from postgresdb3.orm.fields import Serial, String, Integer

db = PostgresDB(
    database="mydb",
    user="postgres",
    password="mypassword"
)

class User(Model):
    db = db
    table = "users"

    id = Serial(primary_key=True)
    name = String()
    age = Integer()

User.create_table()

# create
user = User.create(name="Ali", age=20)

# all
users = User.all()

# find
user = User.find(1)

# filter
users = User.filter(age__gt=18).all()

# get
user = User.get(id=1)

# exclude
users = User.exclude(name="Ali").all()

# update
user.update(name="Valijon")

# delete
user.delete()

Async ORM

from postgresdb3 import AsyncPostgresDB
from postgresdb3.orm import AsyncModel
from postgresdb3.orm.fields import Serial, String, Integer

db = AsyncPostgresDB(
    database="mydb",
    user="postgres",
    password="mypassword"
)

class User(AsyncModel):
    db = db
    table = "users"

    id = Serial(primary_key=True)
    name = String()
    age = Integer()

await User.create_table()

user = await User.create(name="Ali", age=20)

users = await User.all()

user = await User.find(1)

users = await User.filter(age__gt=18).all()

user = await User.get(id=1)

users = await User.exclude(name="Ali").all()

await user.update(name="Valijon")

await user.delete()

Filter operatorlari

Operator Tavsif
eq teng
ne teng emas
gt katta
gte katta yoki teng
lt kichik
lte kichik yoki teng
like LIKE
ilike ILIKE
in IN
not_in NOT IN
isnull NULL tekshirish

Misol:

User.filter(age__gt=18)
User.filter(name__ilike="%ali%")
User.filter(id__in=[1,2,3])
User.filter(name__ne="Ali")

Raw SQL

result = db.raw(
    "SELECT name FROM users WHERE age > %s",
    [18],
    fetchall=True
)

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

postgresdb3-0.6.0.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

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

postgresdb3-0.6.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file postgresdb3-0.6.0.tar.gz.

File metadata

  • Download URL: postgresdb3-0.6.0.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for postgresdb3-0.6.0.tar.gz
Algorithm Hash digest
SHA256 7d5bbba6bd0521902867396caf0dcbdd7580bf00d679d260a99f02627e4b344e
MD5 8a9c6b90974f7f76d01e60ee069c1052
BLAKE2b-256 38377ea33d8e2b2b7de592bf8df053834baabf8d58a23f187537401dbd7a13ff

See more details on using hashes here.

File details

Details for the file postgresdb3-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: postgresdb3-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for postgresdb3-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 821514828572425a0f9edcdcd66aaddfafb113d9d945d08420b1d48f519d5d84
MD5 84754fcdc81fc817d706dd12a60ae52b
BLAKE2b-256 9a5178d518c29d6398f4b9c7c9e6a30e99d8bb89eebc29ccce2e1bc2b3e0c52f

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