Python uchun oddiy PostgreSQL wrapper
Project description
PostgresDB
Oddiy va qulay Python wrapper PostgreSQL bazasi bilan ishlash uchun.
O'rnatish
pip install postgresdb3
Foydalanish (Sync)
from postgresdb3 import PostgresDB
# Bazaga ulanish
db = PostgresDB(
database="mydb",
user="postgres",
password="mypassword",
host="localhost", # ixtiyoriy
port=5432 # ixtiyoriy
)
# Jadval yaratish
db.create("users", "id SERIAL PRIMARY KEY, name VARCHAR(100), age INT")
# Bitta qator qo'shish
db.insert("users", "name, age", ("Ali", 25))
# Bir nechta qator qo'shish
db.insert_many(
"users",
"name, age",
[("Vali", 30), ("Gulnoza", 22), ("Hasan", 28)]
)
# Ma'lumotlarni olish
users = db.select("users")
print(users)
# Bitta qatorni olish
user = db.select("users", where=("name=%s", ["Ali"]), fetchone=True)
print(user)
# Shart bilan ma'lumot olish
adults = db.select("users", where=("age > %s", [18]))
print(adults)
# Bir nechta shart bilan
specific_users = db.select("users", where=("age > %s AND name = %s", [18, "Ali"]))
print(specific_users)
# Faqat 2 ta qatorni olish
users = db.select("users", fetchmany=2)
print(users)
# Jadvaldagi ma'lumotni yangilash
db.update("users", "age", 26, "name", "Ali")
# Ma'lumotni o'chirish
db.delete("users", "name", "Ali")
# Jadvalni o'chirish
db.drop("users", cascade=False)
# To‘g‘ridan-to‘g‘ri SQL bajarish (raw)
result = db.raw("SELECT name, age FROM users WHERE age > %s", [25], fetchall=True)
print(result)
# Connectionni yopish
db.close()
Foydalanish (Async)
import asyncio
from postgresdb3 import AsyncPostgresDB
async def main():
db = AsyncPostgresDB(
database="mydb",
user="postgres",
password="mypassword",
host="localhost",
port=5432
)
# Jadval yaratish
await db.create("users", "id SERIAL PRIMARY KEY, name VARCHAR(100), age INT")
# Bitta qator qo'shish
await db.insert("users", "name, age", ["Ali", 25])
# Bir nechta qator qo'shish
await db.insert_many(
"users",
"name, age",
[["Vali", 30], ["Gulnoza", 22], ["Hasan", 28]]
)
# Barcha ma'lumotlarni olish
users = await db.select("users")
print("Barcha foydalanuvchilar:", users)
# Bitta qatorni olish
user = await db.select("users", where=("name=$1", ["Ali"]), fetchone=True)
print("Foydalanuvchi Ali:", user)
# Shart bilan ma'lumot olish
adults = await db.select("users", where=("age > $1", [18]))
print("Kattalar:", adults)
# Bir nechta shart bilan
specific_users = await db.select("users", where=("age > $1 AND name = $2", [18, "Ali"]))
print("Maxsus foydalanuvchi:", specific_users)
# Faqat 2 ta qatorni olish
users = await db.select("users", fetchmany=2)
print(users)
# Jadvaldagi ma'lumotni yangilash
await db.update("users", "age", 26, "name", "Ali")
# Ma'lumotni o'chirish
await db.delete("users", "name", "Ali")
# Jadvalni o'chirish
await db.drop("users", cascade=False)
# To‘g‘ridan-to‘g‘ri SQL bajarish (raw)
result = await db.raw("SELECT name, age FROM users WHERE age > $1", [25], fetchall=True)
print("Raw query result:", result)
# Connection poolni yopish
await db.close_pool()
asyncio.run(main())
Parametrlar va metodlar
PostgresDB(database, user, password, host="localhost", port=5432) --- bazaga ulanish.
create(table, columns) --- jadval yaratish, columns SQL
sintaksisida.
drop(table, cascade=False) --- jadvalni o'chirish.
insert(table, columns, values) --- ma'lumot qo'shish.
insert_many(table, columns, values_list) --- bir nechta qator qo‘shish
select(table, columns="*", where=None, join=None, group_by=None, order_by=None, limit=None, fetchone=False) --- ma'lumotlarni olish.
where misollar:
db.select("users", where=("age > %s", [18]))
db.select("users", where=("age > %s AND name = %s", [18, "Ali"]))
join misol:
db.select("orders", join=[("INNER JOIN", "users", "users.id = orders.user_id")])
update(table, set_column, set_value, where_column, where_value) --- ma'lumotni yangilash.
delete(table, where_column, where_value) --- ma'lumotni o'chirish.
Qo‘shimcha
%s,$1 bilan parametrizatsiya qilish xavfsiz va SQL injection'dan himoya qiladi.
where va join yordamida murakkab so‘rovlar yozish mumkin.
limit va order_by parametrlaridan foydalanib ma'lumotlarni tartiblash va cheklash oson.
commit=True bo‘lgan amallar darhol bazaga yoziladi, select() esa hech qachon o‘zgartirish kiritmaydi.
raw() — barcha SQL buyruqlarini bajaruvchi yagona metod bo‘lib, kerak bo‘lganda to‘g‘ridan‑to‘g‘ri SQL yozish imkonini beradi.
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
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.3.2.tar.gz.
File metadata
- Download URL: postgresdb3-0.3.2.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd0d8952c6c94b54d8e5c0517d7d8a9c6e2db3b3ee5538bf72358be4e942155a
|
|
| MD5 |
013ab2c95aa38f9b210f80f56b13eb66
|
|
| BLAKE2b-256 |
2e664abf5442d2193f3223fd3f03566d50cece6520bec3d302bcf0009ff06ee0
|
File details
Details for the file postgresdb3-0.3.2-py3-none-any.whl.
File metadata
- Download URL: postgresdb3-0.3.2-py3-none-any.whl
- Upload date:
- Size: 9.7 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 |
be71e0bb7bc8ed0dbdb42789327458ad48f4e98ed5f97831d050b38447c8e195
|
|
| MD5 |
195f08e2ecbd68abe06432b2152d5e15
|
|
| BLAKE2b-256 |
5afb42bc358a18cc1df2b625204aeb1809ba8d7dabcedb10ecc4ce86a1ee7ebd
|