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

एक वेब डेवलपर के रूप में, अपने वेब ऐप के उपयोगकर्ता अनुभव को अनुकूलित करना महत्वपूर्ण है। उपयोगकर्ता अनुभव और खोज इंजन दृश्यता में सुधार करने के लिए, Django में स्लग के साथ उपयोगकर्ता के अनुकूल URL का उपयोग करें। स्लग के साथ यूआरएल बनाना एक फ़ंक्शन लिखने जितना आसान है, जिससे आप संक्षिप्त और वर्णनात्मक यूआरएल उत्पन्न कर सकते हैं जो उपयोगकर्ताओं और खोज इंजनों को समझने में आसान होते हैं। यह खोज इंजन रैंकिंग को बढ़ावा देते हुए उपयोगिता और पहुंच को बढ़ाता है।

इस आलेख में उपयोग किए गए कोड उदाहरण इसमें पाए जा सकते हैं गिटहब रिपॉजिटरी.

एक Django परियोजना बनाना

Django स्लग उत्पन्न करने और उन्हें अपनी वेबसाइट पर उपयोग करने के लिए कई तरीके प्रदान करता है। स्लग को लागू करने के विभिन्न तरीकों को समझाने के लिए, यह ट्यूटोरियल आपको एक साधारण ब्लॉग वेब एप्लिकेशन बनाने के बारे में बताएगा।

एक Django परियोजना स्थापित करने से पहले, एक आभासी वातावरण बनाएं और सक्रिय करें

instagram viewer
आवश्यक निर्भरताओं को स्थापित करने के लिए। अपने वर्चुअल वातावरण को सक्रिय करने के बाद, अपना प्रोजेक्ट सेट करने के लिए इन चरणों का पालन करें:

  • अपनी कमांड लाइन में पिप कमांड का उपयोग करके Django स्थापित करें:
पाइप django स्थापित करें
  • का उपयोग कर एक प्रोजेक्ट बनाएं django-admin उपयोगिता। यह ट्यूटोरियल उपयोग करेगा project_core परियोजना के नाम के रूप में।
डीजेंगो-एडमिन स्टार्टप्रोजेक्ट प्रोजेक्ट_कोर।
  • नाम से ऐप बनाएं व्यंजनों.
python manage.py startapp रेसिपी
  • अपने ऐप को अपने प्रोजेक्ट में इंस्टॉल किए गए ऐप्स में जोड़ें सेटिंग.py फ़ाइल।
INSTALLED_APPS = [
'...'
'व्यंजनों',
]
  • अपने कमांड लाइन टूल में निम्न आदेश टाइप करके अपना एप्लिकेशन चलाएं:
अजगर manage.py runerver
  • पर जाए http://127.0.0.1:8000/ आपके ब्राउज़र में। आपको यह पृष्ठ देखना चाहिए:
  • अपने प्रोजेक्ट में URL पैटर्न कॉन्फ़िगर करें urls.py फ़ाइल
से django.urls आयात पथ, शामिल करें

urlपैटर्न = [
'...',
पथ('', शामिल करना('रेसिपी.यूआरएल'))
]

Django में एक स्लग बनाना

Django में एक स्लग उत्पन्न करने के लिए, आपको अपने मॉडल में एक स्लग फ़ील्ड शामिल करने की आवश्यकता है। Django में एक स्लग बनाने के लिए इन चरणों का पालन करें।

एक मॉडल बनाएँ

आप में model.py फ़ाइल, एक नया मॉडल बनाएँ और एक स्लग फ़ील्ड शामिल करें। यहाँ एक उदाहरण है:

कक्षाव्यंजन विधि(मॉडल। नमूना):
नाम = मॉडल। चारफिल्ड (अधिकतम_लम्बाई =225, रिक्त =असत्य, अशक्त =असत्य)
सामग्री = मॉडल। टेक्स्टफिल्ड (रिक्त =असत्य, अशक्त =असत्य)
निर्देश = मॉडल। टेक्स्टफिल्ड (रिक्त =असत्य, अशक्त =असत्य)
date_created = मॉडल. दिनांक समय फ़ील्ड (auto_now =सत्य)
स्लग = मॉडल। स्लगफिल्ड (शून्य = सत्य, रिक्त =सत्य, अद्वितीय =सत्य)

उपरोक्त उदाहरण में, model व्यंजन विधि नाम का एक क्षेत्र शामिल है काउंटर. काउंटर फ़ील्ड में विशेषताएँ हैं, व्यर्थ और खाली करने के लिए सेट सत्य.

अपने मॉडल में माइग्रेशन लागू करें

एक मॉडल बनाने के बाद, आपको अपने डेटाबेस में टेबल बनाने के लिए अपने कमांड लाइन टूल में निम्न आदेश चलाना चाहिए:

अजगर प्रबंधन.py मेकमाइग्रेशन और& अजगर प्रबंधन.py माइग्रेट

उपरोक्त आदेश पहले माइग्रेशन फ़ाइल उत्पन्न करेगा और फिर माइग्रेशन फ़ाइल के अंदर निर्देशों को निष्पादित करके डेटाबेस को अपडेट करेगा।

अपने डेटाबेस में डेटा जोड़ें

निम्नलिखित को अपने में टाइप करके अपना मॉडल पंजीकृत करें admin.py फ़ाइल:

से django.योगदान आयात व्यवस्थापक
से ।मॉडल आयात व्यंजन विधि

admin.site.register (नुस्खा)

अगला, अपना कमांड लाइन टूल खोलें और एक बनाएँ सुपर उपयोगकर्ता इस आदेश को चलाकर अपने व्यवस्थापक पैनल के लिए:

python manage.py createsuperuser

उपरोक्त आदेश आपको इस छवि में दर्शाए गए चरणों के माध्यम से ले जाएगा:

ए बनाने के बाद सुपर उपयोगकर्ता, निम्न आदेश के साथ अपना स्थानीय सर्वर प्रारंभ करें:

अजगर manage.py runerver

एक बार आपका सर्वर शुरू हो जाने के बाद, आपको नेविगेट करना चाहिए http://127.0.0.1:8000/admin/, आपके द्वारा बनाए गए विवरण के साथ लॉग इन करें सुपर उपयोगकर्ता, और मैन्युअल रूप से अपने डेटाबेस में कुछ व्यंजन जोड़ें। आपको स्लग फील्ड पर ध्यान देना चाहिए।

अपने ऐप के लिए दृश्य बनाएं

अपनी खोलो view.py फ़ाइल करें और अपने ऐप के लिए दो दृश्य बनाएं। पहला दृश्य केवल आपके व्यंजनों का अवलोकन प्रदर्शित करेगा जबकि दूसरा दृश्य प्रत्येक व्यंजन के बारे में अधिक विवरण देगा। आप अपने प्रोजेक्ट में इन दृश्यों का उपयोग कर सकते हैं:

से django.शॉर्टकट आयात रेंडर, get_object_or_404
से ।मॉडल आयात व्यंजन विधि

# व्यंजनों के लिए सूची दृश्य
डीईएफ़recipe_list(अनुरोध):
रेसिपी = रेसिपी.ऑब्जेक्ट्स.ऑल ()
वापस करना प्रस्तुत करना (अनुरोध, 'रेसिपी/नुस्खा_सूची.html', {"व्यंजनों": व्यंजनों})

# प्रत्येक नुस्खा के लिए विस्तार से देखें
डीईएफ़recipe_detail(अनुरोध, रेसिपी_स्लग):
रेसिपी = get_object_or_404 (रेसिपी, स्लग = रेसिपी_स्लग)
वापस करना प्रस्तुत करना (अनुरोध, 'रेसिपी/रेसिपी_विवरण.html', {'व्यंजन विधि': व्यंजन विधि})

उपरोक्त कोड स्निपेट में, recipe_list दृश्य सभी व्यंजनों की सूची को टेम्पलेट में लौटाता है। दूसरी ओर, द recipe_detail व्यू टेम्प्लेट में एक ही रेसिपी लौटाता है। यह दृश्य नामक एक अतिरिक्त पैरामीटर लेता है recipe_slug जिसका उपयोग एक विशिष्ट नुस्खा के लिए स्लग प्राप्त करने के लिए किया जाता है।

अपने दृश्यों के लिए URL प्रतिमान कॉन्फ़िगर करें

आपकी ऐप निर्देशिका में (या व्यंजन विधि फ़ोल्डर), नामक एक फ़ाइल बनाएँ urls.py अपने ऐप के लिए URL पथ जोड़ने के लिए। यहाँ एक उदाहरण है:

से django.urls आयात पथ
से .विचार आयात रेसिपी_लिस्ट, रेसिपी_विवरण

urlपैटर्न = [
पथ('', रेसिपी_लिस्ट, नाम ='नुस्खा-घर'),
पथ('व्यंजन विधि//', रेसिपी_विवरण, नाम ='नुस्खा_विवरण'),
]

उपरोक्त कोड स्निपेट में, दूसरा पथ पृष्ठ के URL में स्लग का परिचय देता है।

अपने ऐप के लिए टेम्प्लेट बनाएं

ब्राउज़र में रेसिपी प्रदर्शित करने के लिए, अपने व्यूज के लिए टेम्प्लेट बनाएं। एक टेम्पलेट के लिए होना चाहिए recipe_list देखें जबकि दूसरा के लिए होना चाहिए recipe_detail देखना। अपने टेम्पलेट में स्लग का उपयोग करने के लिए, इस प्रारूप का पालन करें, {% url 'view_name' रेसिपी.स्लग %}. यहां दो उदाहरण दिए गए हैं जिनका आप अपने कोड में उपयोग कर सकते हैं:

 रेसिपी/रेसिपी_लिस्ट.html 
{% 'base.html' %} को बढ़ाता है

{% ब्लॉक सामग्री%}
<एच 1कक्षा="मेरा -5 टेक्स्ट-सेंटर">व्यंजनोंएच 1>
<केंद्र>
<उलकक्षा="सूची-समूह w-75">
{रेसिपी में रेसिपी के लिए%}
<लीकक्षा="सूची-समूह-आइटम my-3">
<एच 2कक्षा="एमबी-3">
<href="{% url 'रेसिपी_विवरण' रेसिपी.स्लग %}">
{{रेसिपी.नाम}}
>
एच 2>
<पीकक्षा="w-50">
सामग्री: {{रेसिपी.सामग्री}}
पी>
<पीकक्षा="पाठ-म्यूट">
बनाया गया: {{रेसिपी.डेट_क्रिएटेड}}
पी>
ली>
{% खाली %}
<लीकक्षा="सूची-समूह-आइटम">कोई रेसिपी नहीं मिली।ली>
{% अंत%}
उल>
केंद्र>
{% एंडब्लॉक%}

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

 रेसिपी/रेसिपी_विवरण.html 
{% 'base.html' %} को बढ़ाता है

{% ब्लॉक सामग्री%}
<केंद्र>
<डिवकक्षा="डब्ल्यू -75">
<एच 1कक्षा="एमटी-5 एमबी-4">{{रेसिपी.नाम}}एच 1>
<h3>अवयवh3>
<पी>{{नुस्खा.सामग्री}}पी>
<h3>निर्देशh3>
<पी>{{नुस्खा.निर्देश}}पी>
<पीकक्षा="पाठ-म्यूट">बनाया गया: {{रेसिपी.डेट_क्रिएटेड}}पी>
डिव>
केंद्र>
{% एंडब्लॉक%}

ऊपर दिया गया HTML टेम्प्लेट किसी खास रेसिपी के बारे में जानकारी देता है. ब्राउज़र पर, उपरोक्त पेज इस तरह दिखना चाहिए:

आप देखेंगे कि URL में अब वह सब कुछ है जो आपने अपने डेटाबेस में प्रत्येक रेसिपी के लिए जोड़ा है। यदि आप यह नहीं समझते हैं कि टेम्प्लेट सिस्टम कैसे काम करता है, तो आपको पहले सीखना चाहिए Django में टेम्पलेट विरासत और Django का MVT आर्किटेक्चर.

स्वचालित रूप से Django में एक स्लग उत्पन्न करें

स्लग के साथ, आप वास्तव में जो चाहते हैं, वह आपके मॉडल में एक फ़ील्ड के आधार पर उन्हें स्वचालित रूप से उत्पन्न करना है। ऐसा करने के लिए, आपको संशोधित करना होगा बचाना() अपने मॉडल में विधि और वस्तुओं को डेटाबेस में सहेजे जाने से पहले अपने नियम निर्दिष्ट करें। यहां एक साधारण उदाहरण दिया गया है जिसे आप अपने मॉडल वर्ग में जोड़ सकते हैं:

# आयात सुस्त
से django.template.defaultfilters आयात slugify

डीईएफ़बचाना(स्वयं, *आर्ग्स, **क्वार्ग्स):
अगरनहीं स्व.स्लग:
स्व.स्लग = स्लगिफ़ (स्व.नाम)
सुपर ()। सेव (* आर्ग्स, ** क्वार्ग्स)

उपरोक्त फ़ंक्शन पहले जांचता है कि मॉडल ऑब्जेक्ट के लिए स्लग मौजूद है या नहीं। यदि कोई स्लग नहीं है, तो यह उपयोग करता है slugify मॉडल में नाम फ़ील्ड से एक उत्पन्न करने के लिए कार्य करें। ओवरराइड करने के बाद बचाना() विधि, अपना व्यवस्थापक पैनल खोलें और कुछ व्यंजनों को जोड़ें। इस बार, आपको स्लग फ़ील्ड भरने की ज़रूरत नहीं है क्योंकि एक बार जब आप अपना नुस्खा सहेज लेंगे तो यह स्वचालित रूप से पॉप्युलेट हो जाएगा।

यदि आप अपनी नई जोड़ी गई रेसिपी के विवरण पृष्ठ पर नेविगेट करते हैं, तो आप देखेंगे कि URL स्लग के रूप में रेसिपी नाम का उपयोग करता है।

कभी-कभी, आपके पास एक ही नाम के साथ कई व्यंजन होंगे और इससे आपके स्लग में त्रुटियां होंगी। आप अपने स्लग में एक अद्वितीय तत्व जोड़कर इसे ठीक कर सकते हैं जैसे कि बनाई गई तिथि। यहाँ एक सरल उदाहरण है:

सेल्फ.स्लग = स्लगिफाई (सेल्फ.नाम + "-" + str (self.date_created))

यूआरएल के अनुभव को बेहतर बनाने के लिए स्लग का इस्तेमाल करें

अच्छे पुराने के विपरीत पी, स्लग लचीलेपन और पोर्टेबिलिटी सहित कई लाभ प्रदान करते हैं क्योंकि वे प्राथमिक कुंजी जैसे विशिष्ट URL पहचानकर्ताओं से बंधे नहीं होते हैं। इसलिए, यदि आप अपनी डेटाबेस संरचना बदलते हैं या अपना डेटा माइग्रेट करते हैं, तब भी आप सुसंगत URL बनाए रख सकते हैं। स्लग एसईओ मित्रता को भी बढ़ाते हैं।