آموزش روابط و پیوستن در Peewee

3 سال پیش

آموزش روابط و پیوستن در Peewee

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش روابط و پیوستن در Peewee خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش صفر تا صد پایتون

Peewee از پیاده سازی انواع مختلف کوئری های SQL JOIN پشتیبانی می کند. کلاس Model آن دارای متد ()join  است که نمونه Join را برمی گرداند.

M1.joint(m2, join_type, on)

 

جدول پیوست شده با مدل M1 به مدل m2 نگاشته شده و نمونه کلاس Join را برمی گرداند. پارامتر on به طور پیش فرض هیچکدام است و عبارت استفاده از آن به عنوان محمول join است.

انواع Join

Peewee از انواع Join  زیر پشتیبانی می کند (پیش فرض INNER است).

  • JOIN.INNER
  • JOIN.LEFT_OUTER
  • JOIN.RIGHT_OUTER
  • JOIN.FULL
  • JOIN.FULL_OUTER
  • JOIN.CROSS

 

برای نشان دادن استفاده از متد ()join  ، ابتدا مدلهای زیر را اعلام می کنیم –

db = SqliteDatabase('mydatabase.db')

class BaseModel(Model):
   class Meta:
      database = db

class Item(BaseModel):
   itemname = TextField()
      price = IntegerField()

class Brand(BaseModel):
   brandname = TextField()
      item = ForeignKeyField(Item, backref='brands')

class Bill(BaseModel):
   item = ForeignKeyField(Item, backref='bills')
   brand = ForeignKeyField(Brand, backref='bills')
   qty = DecimalField()

db.create_tables([Item, Brand, Bill])

 

جداول

ما این جداول را با داده های آزمایش زیر پر می کنیم –

جدول آیتم 

جدول آیتم ها در زیر آمده است –

Item Table
جدول برند

در زیر جدول برند ذکر شده است –

Brand Table

جدول صورتحساب

جدول صورتحساب به شرح زیر است –

Bill Table

برای انجام عملیات اتصال ساده بین جداول Brand و Item ، کد زیر را اجرا کنید –

qs=Brand.select().join(Item)
for q in qs:
print ("Brand ID:{} Item Name: {} Price: {}".format(q.id, q.brandname, q.item.price))

 

خروجی حاصل به شرح زیر خواهد بود –

Brand ID:1 Item Name: Dell Price: 25000
Brand ID:2 Item Name: Epson Price: 12000
Brand ID:3 Item Name: HP Price: 25000
Brand ID:4 Item Name: iBall Price: 4000
Brand ID:5 Item Name: Sharp Price: 12000

 

پیوستن به چند جدول

ما یک مدل بیل داریم که دارای دو رابطه کلیدی خارجی با مدل های مورد و نام تجاری است. برای دریافت داده ها از هر سه جدول ، از کد زیر استفاده کنید –

qs=Bill.select().join(Brand).join(Item)
for q in qs:
print ("BillNo:{} Brand:{} Item:{} price:{} Quantity:{}".format(q.id, \
q.brand.brandname, q.item.itemname, q.item.price, q.qty))

 

بر اساس داده های آزمایش ما خروجی زیر نمایش داده می شود –

BillNo:1 Brand:HP Item:Laptop price:25000 Quantity:5
BillNo:2 Brand:Epson Item:Printer price:12000 Quantity:2
BillNo:3 Brand:iBall Item:Router price:4000 Quantity:5

 

منبع.

 

 

لیست جلسات قبل آموزش Peeweee

  1. آموزش Peeweee
  2. آموزش مقدماتی Peeweee
  3. آموزش کلاس پایگاه داده در Peeweee
  4. آموزش کلاس مدل در Peeweee
  5. آموزش کلاس Field در Peewee
  6. آموزش ایجاد یک رکورد جدید در Peewee
  7. آموزش انتخاب رکورد در Peewee
  8. آموزش فیلترها در Peewee
  9. آموزش کلیدهای اولیه و کامپوزیت در Peewee
  10. آموزش به روزرسانی رکوردهای موجود در Peewee
  11. آموزش حذف رکوردها در Peewee
  12. آموزش ایجاد ایندکس در Peewee
  13. آموزش محدودیت ها در Peewee
  14. آموزش استفاده از MySQL در Peewee
  15. آموزش استفاده از PostgreSQL در Peewee
  16. آموزش تعریف پایگاه داده به صورت پویا در Peewee
  17. آموزش مدیریت اتصال در Peewee
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه