Peewee ORM: أداة خفيفة للتعامل مع قواعد البيانات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة

التعامل مع قواعد البيانات هو جزء أساسي من أي تطبيق حديث. في Python، هناك العديد من مكتبات ORM التي تسهل التفاعل مع قواعد SQL. من بينها، تعتبر Peewee واحدة من أبسط وأخف المكتبات. إنها مثالية للمشاريع الصغيرة، والبرامج النصية، وحتى الخدمات المصغرة.

Peewee – ORM خفيفة تقدم كل ما تحتاجه لوصف النماذج، وتنفيذ الاستعلامات، والتعامل مع المعاملات، والتكامل مع أطر الويب — مع سهولة التعلم والتنفيذ.

مبادئ عمل ORM ومكانة Peewee

ما هو ORM

ORM (Object-Relational Mapping) هي تقنية تتيح لك التعامل مع قواعد البيانات من خلال كائنات لغة البرمجة. بدلاً من كتابة استعلامات SQL، تقوم بإنشاء والتفاعل مع كلاسات Python، ويقوم ORM بتحويل ذلك إلى SQL.

يوفر ORM طبقة تجريد فوق SQL، مما يجعل الكود أكثر قابلية للقراءة وأقل عرضة للأخطاء. الفوائد الرئيسية لاستخدام ORM:

  • إنشاء استعلامات SQL تلقائياً
  • الحماية من هجمات SQL injection
  • قابلية النقل بين أنظمة قواعد البيانات المختلفة
  • سهولة التعامل مع كائنات 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 تاريخ ووقت