Python uchun oddiy PostgreSQL wrapper
Project description
PostgresDB3
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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d5bbba6bd0521902867396caf0dcbdd7580bf00d679d260a99f02627e4b344e
|
|
| MD5 |
8a9c6b90974f7f76d01e60ee069c1052
|
|
| BLAKE2b-256 |
38377ea33d8e2b2b7de592bf8df053834baabf8d58a23f187537401dbd7a13ff
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
821514828572425a0f9edcdcd66aaddfafb113d9d945d08420b1d48f519d5d84
|
|
| MD5 |
84754fcdc81fc817d706dd12a60ae52b
|
|
| BLAKE2b-256 |
9a5178d518c29d6398f4b9c7c9e6a30e99d8bb89eebc29ccce2e1bc2b3e0c52f
|