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.7.0.tar.gz (13.5 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.7.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for postgresdb3-0.7.0.tar.gz
Algorithm Hash digest
SHA256 3a729dea23890b749c71f557851c13d824e9cbd8e704899418e1e4ef2a7063b8
MD5 bab85bca77d99b0abdc414737a1500e0
BLAKE2b-256 9a6f8356ebc56f1f9edfe927e46e2a1227edb717abb3f599f150402a832c5c1e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: postgresdb3-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 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.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b9f9eb78595ec13ad028677e5b6a9c7bed3b89d76df0d4fff1a57dacaee1ca02
MD5 b05c29617b331e20d0ddc1980f604cca
BLAKE2b-256 b86a910f7ba93819b946786683c24d285739921b15debadecac7a7282d3a2b7b

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