मॉडल परिभाषित करना
क्लास को तालिकाओं से मैप करें
मॉडल परिभाषित करना, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
मॉडल तालिकाओं से मैप होते हैं
SQLAlchemy ORM में, मॉडल एक Python क्लास होता है जो डेटाबेस तालिका से मैप होता है। उसका हर इंस्टेंस एक पंक्ति बन जाता है।
मॉडल एक साझा Base क्लास से विरासत में मिलते हैं।
from sqlalchemy.orm import DeclarativeBase
class Base(DeclarativeBase):
pass
print('Base class ready')The __tablename__
हर मॉडल अपनी तालिका का नाम देने के लिए __tablename__ सेट करता है। SQLAlchemy SQL बनाते समय इसका उपयोग करता है।
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
print(User.__tablename__)Mapped वाले कॉलम
आधुनिक SQLAlchemy प्रकार संकेतों के साथ कॉलम घोषित करता है: Mapped[int] और mapped_column()। प्रकार संकेत Python का प्रकार निर्धारित करता है और कॉलम के प्रकार की जानकारी देता है।
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
age: Mapped[int]
print('User has id, name, age')प्राथमिक कुंजी
primary_key=True से किसी कॉलम को प्राथमिक कुंजी के रूप में चिह्नित करें। पूर्णांक वाली प्राथमिक कुंजियाँ डिफ़ॉल्ट रूप से स्वतः बढ़ती हैं।
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Product(Base):
__tablename__ = 'products'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
print('id is the primary key')वैकल्पिक कॉलम
NULL मानों की अनुमति देने के लिए Mapped[str | None] या Optional[str] का उपयोग करें। सामान्य Mapped[str] का अर्थ NOT NULL होता है।
from typing import Optional
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
nickname: Mapped[Optional[str]]
print('nickname can be NULL')डिफ़ॉल्ट और विशिष्टता
बाध्यताएँ और वैकल्पिक मान जोड़ने के लिए mapped_column() में unique=True और default= जैसे विकल्प दिए जा सकते हैं।
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
email: Mapped[str] = mapped_column(unique=True)
active: Mapped[bool] = mapped_column(default=True)
print('email is unique, active defaults to True')स्ट्रिंग की लंबाई
जिन डेटाबेसों में इसकी आवश्यकता होती है, वहाँ mapped_column(String(50)) से स्ट्रिंग की लंबाई निर्धारित करें।
from sqlalchemy import String
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(String(50))
print('name limited to 50 chars')स्कीमा बनाना
Base.metadata.create_all(engine) ऐसे हर मॉडल के लिए तालिकाएँ बनाता है जो Base से विरासत में मिला हो।
from sqlalchemy import create_engine
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
print('Schema created')इंस्टेंस बनाना
सामान्य Python ऑब्जेक्ट की तरह मॉडल का इंस्टेंस बनाकर और कॉलम के मानों को कीवर्ड आर्ग्युमेंट के रूप में देकर एक पंक्ति बनाएँ।
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
u = User(name='Alice')
print(u.name)__repr__ जोड़ना
एक कस्टम __repr__ ऑब्जेक्ट का डेटा स्पष्ट रूप से दिखाकर त्रुटि-खोज को आसान बनाता है।
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
def __repr__(self):
return 'User(name=' + self.name + ')'
print(repr(User(name='Bob')))मॉडल सामान्य Python ही रहते हैं
मॉडल अब भी एक सामान्य क्लास होता है। आप उसके डेटा पर काम करने वाली विधियाँ और गुणधर्म जोड़ सकते हैं, जिससे व्यवहार और डेटा-संग्रहण एक साथ काम करते हैं।
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
def greet(self):
return 'Hi, ' + self.name
print(User(name='Carol').greet())त्वरित जाँच
मॉडल परिभाषित करने की अपनी कुशलता जाँचें।
पुनरावलोकन
आपने ORM मॉडल परिभाषित करना सीखा।
- मॉडल
DeclarativeBaseसे विरासत में मिलते हैं और__tablename__सेट करते हैं - कॉलम
Mapped[type]औरmapped_column()का उपयोग करते हैं primary_key,uniqueऔरdefaultबाध्यताएँ जोड़ते हैंcreate_all()तालिकाएँ बनाता है
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “मॉडल परिभाषित करना” पाठ निःशुल्क है?
हाँ—“मॉडल परिभाषित करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“मॉडल परिभाषित करना” में मैं क्या सीखूँगा?
क्लास को तालिकाओं से मैप करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“मॉडल परिभाषित करना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- SQLAlchemy Core बनाम ORM
- मॉडल परिभाषित करना
- Session से क्वेरी करना
- संबंध और जॉइन