Django वेब फ्रेमवर्क में एक मॉडल-व्यू-टेम्पलेट (एमवीटी) आर्किटेक्चर है, जो इसे एकमात्र ऐसा ढांचा बनाता है जिसकी आपको पूरी वेबसाइट या वेब एप्लिकेशन बनाने की आवश्यकता होगी। यह पायथन ढांचा आपको ऐसे मॉडल बनाने की अनुमति देता है जो डेटाबेस उत्पन्न करते हैं और दृश्यों का उपयोग करके UI को गतिशील HTML टेम्पलेट प्रस्तुत करते हैं।

Django की शक्ति कोई रहस्य नहीं है; यह तेज़, विश्वसनीय, मापनीय और सुरक्षित है। विश्वसनीयता, साथ ही साथ इस सॉफ़्टवेयर की मापनीयता, इसके MVT आर्किटेक्चर पर निर्भर करती है। और इस लेख में, आप सीखेंगे कि Django का MVT आर्किटेक्चर कैसे काम करता है।

Django का मॉडल क्या है?

Django के MVT आर्किटेक्चर में मॉडल उस डेटा की संरचना और व्यवहार को परिभाषित करता है जिसे आप अपनी वेबसाइट के माध्यम से स्टोर करना चाहते हैं। आपके द्वारा बनाया गया प्रत्येक Django मॉडल एक संबंधित डेटाबेस तालिका बनाता है, जहाँ मॉडल की प्रत्येक विशेषता तालिका में एक फ़ील्ड बन जाती है।

हमारे. से सेटअप के साथ जारी है Django पर परिचयात्मक लेख, आप विक्रेताओं के लिए एक मॉडल बना सकते हैं। एक विक्रेता के पास एक विक्रेता मॉडल हो सकता है जिसमें व्यक्तिगत जानकारी होती है, जैसे नाम और संपर्क विवरण, और प्रत्येक विक्रेता द्वारा बेचे जाने वाले आइटम के लिए संबंधित मॉडल।

instagram viewer

मौजूदा नमूना Django परियोजना फ़ाइल संरचना

मेरी साइट/
मेरी साइट/
_pycache_
_init_.py
asgi.py
सेटिंग्स.py
urls.py
wsgi.py
विक्रेता/
प्रवास
_init_.py
admin.py
apps.py
model.py
test.py
view.py
db.sqlite3
मैनेज.py

Django मॉडल बनाना

यदि आप ऊपर फ़ाइल संरचना में विक्रेता के ऐप अनुभाग के अंतर्गत देखते हैं, तो आपको एक फ़ाइल दिखाई देगी जिसका नाम है model.py. यह वह जगह है जहाँ आप अपनी वेबसाइट के विक्रेता अनुभाग के लिए अपने सभी Django मॉडल बनाएंगे। आपके द्वारा बनाया गया प्रत्येक मॉडल का उपवर्ग होगा Django का मॉडल API, यही कारण है कि प्रत्येक Django उत्पन्न model.py फ़ाइल में एक डिफ़ॉल्ट मॉडल आयात है।

Model.py फ़ाइल

django.db आयात मॉडल से

# यहां अपने मॉडल बनाएं।

वर्ग विक्रेता (मॉडल। नमूना):
first_name = मॉडल। चारफिल्ड (अधिकतम_लंबाई = 30)
last_name = मॉडल। चारफिल्ड (अधिकतम_लंबाई = 30)
contact_number = मॉडल। चारफिल्ड (अधिकतम_लंबाई = 30)

वर्ग उत्पाद (मॉडल। नमूना):
विक्रेता = मॉडल। विदेशीकी (विक्रेता, on_delete=models. कैस्केड)
आइटम_नाम = मॉडल। चारफिल्ड (अधिकतम_लंबाई = 100)
item_qantity = मॉडल। पूर्णांक फ़ील्ड ()
आइटम_प्राइस = मॉडल। DecimalField (max_digits=9, दशमलव_places=2)
आइटम_डिस्क्रिप्शन = मॉडल। पाठ का क्षेत्र()

उपरोक्त कोड की अद्यतन सामग्री की एक प्रति है model.py फ़ाइल। फ़ाइल अब दो मॉडल बनाती है—विक्रेता और उत्पाद। ये मॉडल एक-से-अनेक संबंध साझा करते हैं, जहां एक विक्रेता के पास बिक्री पर कई उत्पाद हो सकते हैं। तो, उत्पाद मॉडल में a. है विदेशी कुंजी विक्रेता और an. से on_delete विशेषता सेट मॉडल। झरना, जिसका अर्थ है कि जब आप किसी विक्रेता को हटाते हैं, तो आप स्वचालित रूप से हर उस उत्पाद को हटा देंगे जिसमें वह है प्राथमिक कुंजी के रूप में विदेशी कुंजी.

संबंधित: इन अद्भुत पाठ्यक्रमों के साथ आज ही पायथन और जैंगो सीखें आप यह भी देख सकते हैं कि उपरोक्त कोड के प्रत्येक मॉडल में प्राथमिक कुंजी नहीं है। ऐसा इसलिए है क्योंकि Django स्वचालित रूप से a. उत्पन्न करेगा प्राथमिक कुंजी यदि आप स्पष्ट रूप से एक नहीं बनाते हैं।

इससे पहले कि आप अपने द्वारा बनाए गए किसी भी मॉडल का उपयोग कर सकें, आपको Django को यह बताना होगा कि इसे कहां खोजना है। ऐसा करने के लिए, आपको नेविगेट करने की आवश्यकता होगी सेटिंग्स.py फ़ाइल और उस मॉड्यूल का नाम डालें जिसमें शामिल है model.py फ़ाइल, में INSTALLED_APP अनुभाग।

इस लेख के लिए नमूना परियोजना में, model.py फ़ाइल विक्रेता के मॉड्यूल में है। इसलिए, अद्यतन INSTALLED_APP अनुभाग इस प्रकार पढ़ेगा:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'विक्रेता',
]

उपरोक्त कोड के साथ, विक्रेता के ऐप में मॉडल अब Django वेबसाइट पर दिखाई दे रहे हैं, और अब आप माइग्रेशन पर आगे बढ़ सकते हैं।

माइग्रेशन करना महत्वपूर्ण है क्योंकि यह प्रक्रिया आपके द्वारा अपने मॉडल में किए गए परिवर्तनों को संबंधित डेटाबेस स्कीमा में फैलाने का एक तरीका है। इसलिए, हर बार जब आप अपने मॉडल में बदलाव करते हैं, तो आपको माइग्रेशन की प्रक्रिया को पूरा करना होगा—जिसमें दो चरण शामिल हैं।

पहला कदम माइग्रेशन करना है, जो एक कमांड है जो इसमें पाए गए परिवर्तनों के आधार पर माइग्रेशन बनाता है model.py फ़ाइल। माइग्रेशन प्रक्रिया शुरू करने के लिए, आपको अपना टर्मिनल खोलना होगा, उस निर्देशिका पर नेविगेट करना होगा जिसमें आपका Django प्रोजेक्ट है, और निम्न कमांड का उपयोग करके सर्वर लॉन्च करना होगा:

अजगर manage.py रनरवर

सर्वर के एक टर्मिनल में चलने के साथ, एक नया टर्मिनल खोलें और निम्न कमांड दर्ज करें:

अजगर manage.py makemigrations

निष्पादन के बाद, टर्मिनल निम्नलिखित आउटपुट का उत्पादन करेगा:

'विक्रेताओं' के लिए माइग्रेशन:
विक्रेता\माइग्रेशन\0001_initial.py
- मॉडल विक्रेता बनाएं
- मॉडल उत्पाद बनाएं

ऊपर दिया गया आउटपुट स्पष्ट रूप से बताता है कि अब आपके पास दो मॉडलों के लिए माइग्रेशन है—विक्रेता और उत्पाद। अब यदि आप अपने विक्रेता के मॉड्यूल में माइग्रेशन फ़ोल्डर में नेविगेट करते हैं, तो आप देखेंगे कि इसमें अब एक नई फ़ाइल है जिसे कहा जाता है 0001_प्रारंभिक.py. इस फ़ाइल में, आप अपने द्वारा अभी-अभी बनाए गए माइग्रेशन पाएंगे।

0001_initial.py फ़ाइल

# 2022-02-26 16:06 को Django 3.2.9 द्वारा जेनरेट किया गया

django.db से आयात माइग्रेशन, मॉडल
आयात django.db.models.deletion

वर्ग प्रवासन (माइग्रेशन. प्रवास):

प्रारंभिक = सत्य

निर्भरता = [
]

संचालन = [
पलायन। क्रिएटमॉडल(
नाम = 'विक्रेता',
फ़ील्ड = [
('आईडी', मॉडल। BigAutoField (auto_created=True, Primary_key=True, serialize=False, verbose_name='ID')),
('फर्स्ट_नाम', मॉडल। चारफिल्ड (अधिकतम_लंबाई = 30)),
('last_name', मॉडल। चारफिल्ड (अधिकतम_लंबाई = 30)),
('contact_number', मॉडल. चारफिल्ड (अधिकतम_लंबाई = 30)),
],
),
पलायन। क्रिएटमॉडल(
नाम = 'उत्पाद',
फ़ील्ड = [
('आईडी', मॉडल। BigAutoField (auto_created=True, Primary_key=True, serialize=False, verbose_name='ID')),
('आइटम_नाम', मॉडल। चारफिल्ड (अधिकतम_लंबाई = 100)),
('item_qantity', मॉडल। इंटीजरफिल्ड ()),
('आइटम_प्राइस', मॉडल। दशमलव फ़ील्ड (दशमलव_स्थान = 2, अधिकतम_अंक = 9),
('आइटम_डिस्क्रिप्शन', मॉडल। पाठ का क्षेत्र()),
('विक्रेता', मॉडल। विदेशीकी (on_delete=django.db.models.deletion. CASCADE, to='sellers.seller')),
],
),
]

हर बार जब आप कोई नया माइग्रेशन करते हैं, तो माइग्रेशन फ़ोल्डर इस फ़ाइल का एक नया संस्करण तैयार करता है।

माइग्रेशन प्रक्रिया का चरण दो अंतत: मॉडलों को माइग्रेट करना है। इसका मतलब है कि आप डेटाबेस स्थिति को के साथ सिंक्रनाइज़ करते हैं model.py फ़ाइल, आपके द्वारा अभी-अभी बनाए गए माइग्रेशन का उपयोग करके 0001_प्रारंभिक.py फ़ाइल। आप निम्न आदेश के साथ इस प्रक्रिया को पूरा कर सकते हैं (जबकि सर्वर अभी भी चल रहा है):

अजगर manage.py माइग्रेट

Django का खाका क्या है?

टेम्प्लेट आपके Django प्रोजेक्ट के लिए गतिशील रूप से HTML उत्पन्न करने का एक तरीका है। प्रत्येक Django टेम्पलेट में है .html विस्तार और स्थिर और गतिशील सामग्री का संयोजन। Django टेम्प्लेट में एक अद्वितीय सिंटैक्स होता है जिसमें HTML दस्तावेज़ में चर और टैग बनाने के नए तरीके शामिल होते हैं।

एक Django टेम्पलेट बनाना

इस लेख के लिए नमूना ईकॉमर्स वेबसाइट में टेम्प्लेट पेश करने के लिए, आपको विक्रेताओं के मॉड्यूल में एक नई निर्देशिका बनाने की आवश्यकता होगी। "टेम्पलेट्स" नामक यह नई निर्देशिका होम पेज से शुरू होने वाले विक्रेताओं के ऐप के लिए सभी HTML दस्तावेज़ों का घर होगी।

विक्रेता_होम.एचटीएमएल फ़ाइल





विक्रेता | ई-कॉमर्स


विक्रेताओं का स्वागत है!




अपने टेम्प्लेट बनाने के बाद, आपको अपने टेम्प्लेट की निर्देशिका को जोड़कर उन्हें Django के लिए दृश्यमान बनाना होगा। खाके का खंड सेटिंग्स.py फ़ाइल। अद्यतन खाके अनुभाग निम्न की तरह दिखेगा:

टेम्पलेट्स = [
{
'बैकएंड': 'django.template.backends.django. Django टेम्पलेट्स',
'डीआईआरएस': [
# नया कोड जो टेम्प्लेट के स्थान की ओर इशारा करता है
BASE_DIR / 'विक्रेता' / 'टेम्पलेट्स'
],
'APP_DIRS': सच है,
'विकल्प': {
'संदर्भ_प्रोसेसर': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

अब जब Django को पता है कि वेबसाइट के लिए टेम्प्लेट कहां मिलेंगे, तो आप आगे बढ़ सकते हैं और दृश्य का उपयोग करके उन्हें UI में प्रस्तुत कर सकते हैं।

Django का दृष्टिकोण क्या है?

दृश्य Django के MVT आर्किटेक्चर की दूसरी परत है, एक टेम्प्लेट तब तक बेकार है जब तक कि कोई दृश्य इसे UI में प्रस्तुत नहीं करता। वेब अनुरोधों को स्वीकार करने और उचित प्रतिक्रियाएं (टेम्पलेट सहित) वापस करने के लिए दृश्य जिम्मेदार है। अपने सबसे बुनियादी रूप में, दृश्य एक पायथन फ़ंक्शन है, जिसे में संग्रहीत किया जाता है view.py आपके Django प्रोजेक्ट की फ़ाइल।

Django व्यू बनाना

view.py फ़ाइल नमूना Django प्रोजेक्ट के विक्रेता मॉड्यूल में है। जब कोई विक्रेता आपकी वेबसाइट पर जाता है, तो आप चाहते हैं कि वे विक्रेता के होम पेज पर जाएं। यह होम पेज आप एक HTML टेम्प्लेट का उपयोग करके बनाएंगे, जो ऊपर दिए गए टेम्प्लेट सेक्शन में बनाया गया है।

view.py फ़ाइल

django.shortcuts से आयात रेंडर

def सूचकांक (अनुरोध):
रिटर्न रेंडर (अनुरोध, 'sellers_home.html')

ऊपर दिया गया दृश्य एक अनुरोध लेता है और विक्रेता का HTML टेम्प्लेट लौटाता है। इसलिए, हर बार जब कोई उपयोगकर्ता विज़िट करता है (या अनुरोध करता है) http://127.0.0.1:8000/sellers/ वे विक्रेताओं का होम पेज देखेंगे। यह आपके द्वारा a. बनाने के बाद है urls.py विक्रेता के मॉड्यूल में फ़ाइल।

विक्रेता urls.py फ़ाइल

django.urls से आयात पथ
से। आयात दृश्य

यूआरएलपैटर्न = [
पथ ('', views.index, name='index'),
]

और विक्रेताओं के मॉड्यूल का पथ शामिल करें urls.py में फ़ाइल urls.py मुख्य Django निर्देशिका में स्थित फ़ाइल।

वेबसाइट urls.py फ़ाइल

django.contrib आयात व्यवस्थापक से
django.urls से आयात में शामिल हैं, पथ

यूआरएलपैटर्न = [
पथ ('विक्रेता/', शामिल करें ('sellers.urls')),
पथ ('व्यवस्थापक/', admin.site.urls),
]

अब जब दृश्य सेट हो गया है, तो आप यह सुनिश्चित कर सकते हैं कि Django सर्वर अभी भी चल रहा है और नेविगेट करें http://127.0.0.1:8000/sellers/ विक्रेताओं के होम पेज को देखने के लिए अपने ब्राउज़र में।

विक्रेता का होम पेज

Django का MVT आर्किटेक्चर बनाम। एमवीसी आर्किटेक्चर

Django का MVT आर्किटेक्चर लोकप्रिय MVC आर्किटेक्चर से काफी अलग है।

एमवीटी आर्किटेक्चर का टेम्प्लेट सेक्शन उसी तरह से काम करता है जैसे एमवीसी आर्किटेक्चर में दृश्य, जबकि एमवीटी आर्किटेक्चर में दृश्य एमवीसी में नियंत्रक के समान गुण प्रदर्शित करता है वास्तुकला। हालांकि, दोनों आर्किटेक्चर में मॉडल समान रूप से काम करते हैं।

एमवीसी आर्किटेक्चर का परिचय: उदाहरण समझाया गया

तत्काल परिणामों के लिए अपने कार्यक्रमों में मॉडल-व्यू-कंट्रोलर डिजाइन सिद्धांतों को लागू करें। यहां बताया गया है कि शुरुआत कैसे करें।

आगे पढ़िए

साझा करनाकलरवईमेल
संबंधित विषय
  • प्रोग्रामिंग
  • प्रोग्रामिंग
  • अजगर
लेखक के बारे में
कदीशा कीन (46 लेख प्रकाशित)

कदीशा कीन एक पूर्ण-स्टैक सॉफ़्टवेयर डेवलपर और तकनीकी/प्रौद्योगिकी लेखक हैं। उसके पास कुछ सबसे जटिल तकनीकी अवधारणाओं को सरल बनाने की विशिष्ट क्षमता है; उत्पादन सामग्री जिसे किसी भी तकनीकी नौसिखिए द्वारा आसानी से समझा जा सकता है। उसे लिखने, दिलचस्प सॉफ्टवेयर विकसित करने और दुनिया की यात्रा (वृत्तचित्रों के माध्यम से) करने का शौक है।

कदीशा कीन. की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें