#1 Ob’ekt tushunchasi yoritib bering va misollar keltiring


Djangoda ORM (Object-Relational Mapping)


Download 196.81 Kb.
bet8/11
Sana31.01.2023
Hajmi196.81 Kb.
#1144964
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
django

14
Djangoda ORM (Object-Relational Mapping)

  • Hozirda deyarli barcha web loyihalar ma’lumotlar bazasidan foydalanadi. Pythonda yozilgan serverimiz ma’lumotlar bazasi(deylik, PostgreSQLda bo’lsin) bilan aloqa o’rnatishi uchun bizga o’rtada «ko’prik» kerak bo’ladi. Django ORM biz uchun mana shu vazifani bajaradi.

  • Object relational mapper(ORM) – boshqa tur(masalan, ma’lumotlar bazasi)dagi ma’lumotlarni biror dasturlash tiliga obyekt sifatida o’tkazib, foydalanish imkonini beruvchi qism.

  • Model esa Django ORMning bir qismi. Demak, u ham bizning serverimizni database bilan bog’lashga xizmat qiladi.

  • Agar siz SQL tillaridan xabardor bo’lsangiz, ma’lumotlar SQL oilasidagi ma’lumotlar bazasida jadval ko’rinishida saqlanishidan xabardor bo’lsangiz kerak. SQLda biz column(ustun)lardan qolip sifatida foydalanamiz. Row(qator)larda esa o’sha qoliplardan foydalanib yaratilgan ma’lumotlar bo’ladi.

15
super()undan meros bo'lgan kichik sinfdan yuqori sinfdagi usullarga kirish imkonini beradi.
super()yolg'iz o'zi supersinfning vaqtinchalik ob'ektini qaytaradi, bu esa o'sha supersinf usullarini chaqirish imkonini beradi.
class Rectangle:
def __init__(self, length, width):
self.length = length
self.width = width

def area(self):


return self.length * self.width

def perimeter(self):


return 2 * self.length + 2 * self.width

# Bu yerda biz Square klassi Rectangle sinfidan meros ekanligini e'lon qilamiz


class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
Quyidagi misolda biz misolning sirt maydoni va hajmini hisoblash uchun ( sinfdan meros qilib olingan ) funksiyasini Cubemeros qilib oladigan va kengaytiradigan sinf yaratamiz :Square.area()RectangleSquareCube
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)

class Cube(Square):


def surface_area(self):
face_area = super().area()
return face_area * 6

def volume(self):


face_area = super().area()
return face_area * self.length
Endi biz sinflarni qurganimizdan so'ng, yon uzunligi 3 ga teng bo'lgan kubning sirt maydoni va hajmini ko'rib chiqamiz :
>>>
>>> cube = Cube(3)
>>> cube.surface_area()
54
>>> cube.volume()
27
Bu yerda biz Cube sinf uchun ikkita usulni amalga oshirdik: .surface_area()va .volume(). Ushbu hisoblarning ikkalasi ham bitta yuzning maydonini hisoblashga tayanadi, shuning uchun maydonni hisoblashni qayta amalga oshirish o'rniga, biz super() maydonni hisoblashni kengaytirish uchun foydalanamiz.

Download 196.81 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling