परिचय
डेटाबेस के साथ काम करना किसी भी आधुनिक प्रोग्राम का अहम हिस्सा है। Python में कई ORM लाइब्रेरी मौजूद हैं जो SQL डेटाबेस के साथ आसानी से काम करने में मदद करती हैं। इनमें से सबसे सरल और कॉम्पैक्ट है Peewee। यह छोटे प्रोजेक्ट, स्क्रिप्ट और माइक्रोसर्विसेज के लिए एकदम सही है।
Peewee एक हल्की ORM है जो मॉडल बनाने, क्वेरी चलाने, ट्रांजैक्शन और वेब फ्रेमवर्क के साथ इंटीग्रेशन के लिए सब कुछ प्रदान करती है — और इसे सीखना और लागू करना बेहद आसान है।
ORM के काम करने का तरीका और Peewee की स्थिति
ORM क्या है
ORM (Object-Relational Mapping) एक ऐसी तकनीक है जो आपको प्रोग्रामिंग भाषा के ऑब्जेक्ट के जरिए डेटाबेस से काम करने की सुविधा देती है। SQL क्वेरी लिखने के बजाय, आप Python क्लास बनाते और उनके साथ इंटरैक्ट करते हैं, और ORM इसे SQL में बदल देता है।
ORM SQL पर एक एब्स्ट्रैक्शन प्रदान करता है, जिससे कोड अधिक पढ़ने योग्य और कम त्रुटि-प्रवण होता है। ORM के मुख्य लाभ:
- SQL क्वेरी का ऑटोमैटिक जनरेशन
- SQL इंजेक्शन से सुरक्षा
- विभिन्न डेटाबेस सिस्टम के बीच पोर्टेबिलिटी
- Python ऑब्जेक्ट के साथ काम करने की सुविधा
Peewee कब चुनें
Peewee निम्नलिखित मामलों में एक बेहतरीन विकल्प है:
- अगर आपको एक सरल और हल्का टूल चाहिए
- अगर प्रोजेक्ट छोटा या प्रयोगात्मक है
- अगर बिना जटिल कॉन्फ़िगरेशन के तेज़ डेवलपमेंट चाहिए
- प्रोटोटाइप और छोटे वेब एप्लिकेशन के लिए
- लोकल डेटाबेस वाले डेस्कटॉप एप्लिकेशन के लिए
इंस्टॉलेशन और बेसिक सेटअप
Peewee इंस्टॉल करना
Peewee को pip के जरिए इंस्टॉल करें:
pip install peewee
विभिन्न डेटाबेस सिस्टम के लिए अतिरिक्त पैकेज चाहिए:
# PostgreSQL के लिए
pip install psycopg2-binary
# MySQL के लिए
pip install PyMySQL
# SQLite के लिए (Python में पहले से शामिल)
# अतिरिक्त पैकेज की जरूरत नहीं
डेटाबेस से कनेक्शन
Peewee कई प्रकार के डेटाबेस को सपोर्ट करता है:
from peewee import SqliteDatabase, PostgresqlDatabase, MySQLDatabase
# SQLite
db = SqliteDatabase('my_database.db')
# PostgreSQL
db = PostgresqlDatabase('mydb', user='username', password='password', host='localhost', port=5432)
# MySQL
db = MySQLDatabase('mydb', user='username', password='password', host='localhost', port=3306)
डेटा मॉडल बनाना
बेसिक मॉडल
from peewee import Model, CharField, DateField, IntegerField, TextField
class BaseModel(Model):
class Meta:
database = db
class Author(BaseModel):
name = CharField(max_length=100)
birth_date = DateField()
bio = TextField(null=True)
class Book(BaseModel):
title = CharField(max_length=200)
isbn = CharField(max_length=13, unique=True)
pages = IntegerField()
publication_year = IntegerField()
author = ForeignKeyField(Author, backref='books')
टेबल बनाना
db.connect()
db.create_tables([Author, Book])
Peewee में फील्ड के प्रकार
मुख्य फील्ड प्रकार
| फील्ड प्रकार | विवरण | पैरामीटर |
|---|---|---|
| CharField | सीमित लंबाई वाली स्ट्रिंग | max_length, unique, null |
| TextField | बिना लंबाई सीमा वाला टेक्स्ट | null |
| IntegerField | पूर्णांक संख्या | null, unique |
| FloatField | दशमलव संख्या | null, unique |
| BooleanField | बूलियन मान (सही/गलत) | null, default |
| DateField | तारीख | null, default |
| DateTimeField | तारीख और समय | null, default |