हमारे पिछले लेख में, हमने Django प्रोजेक्ट स्थापित करने की मूल बातें शामिल कीं और अपना व्यायाम मॉडल बनाया, जिसे हमने एक सूची के रूप में सामने के अंत में प्रदर्शित किया। इस लेख में, हम सीआरयूडी संचालन के बारे में विस्तार से जानेंगे। उन अपरिचित लोगों के लिए, सीआरयूडी का अर्थ है बनाएं, पढ़ें, अपडेट करें और हटाएं-अनिवार्य रूप से चार मूलभूत क्रियाएं जो आप अपने डेटा पर कर सकते हैं।
अब जब हमने ऐप फ़ोल्डर में अपना एपीआई सेट कर लिया है, तो हम अनुरोधों को बनाने, अपडेट करने और हटाने के लिए केवल इंडेक्स व्यू का विस्तार करेंगे।
आइए एक फॉर्म सेट करें जो उपयोगकर्ताओं को व्यायाम बनाने की अनुमति देता है। हम इस उद्देश्य के लिए एक बार फिर HTML टेम्प्लेट का उपयोग करेंगे। आरंभ करने के लिए, ऐप/टेम्पलेट्स फ़ोल्डर में add_exercise.html नामक एक नया टेम्प्लेट बनाएं।
अगला, हमारे Index.html टेम्पलेट में, हम निम्नलिखित विधि का उपयोग करके add_exercise.html टेम्पलेट शामिल करेंगे:
{% extends "base.html" %} {% block content %}Exercises
{% include 'add_exercise.html' %} ... {% endblock %}
हम यहां शामिल टैग का उपयोग कर रहे हैं, जो HTML टेम्प्लेट में कंपोजिबिलिटी को बढ़ावा देता है, जिससे हमारे कोड को बनाए रखना और समझना आसान हो जाता है। यदि आप अपने ब्राउज़र में पृष्ठ को ताज़ा करते हैं, तो आपको स्क्रीन पर फ़ॉर्म दिखाई देना चाहिए।
हमारे HTML में, हम
हम सूची में प्रत्येक अभ्यास के लिए
और हमारे अभ्यास दृश्य में, हम अनुरोधों के बीच अंतर करने के लिए निम्नलिखित परिवर्तन करेंगे।
def index(request): if request.method == 'POST': create = 'create' in request.POST update = 'update' in request.POST if create == True: models.Exercise.create(request) elif update == True: models.Exercise.update(request) return redirect('/') exercises = ( models.Exercise.objects.all().order_by("created_at") ) return render(request, "index.html", context={'exercises': exercises})
हम बटन के नाम की जांच करते हैं और तदनुसार उचित व्यायाम विधि के लिए अनुरोध अग्रेषित करते हैं।
आइए ऐप/मॉडल.py में व्यायाम मॉडल में एक अपडेट क्लास विधि जोड़ें।
def update(request): id = request.POST.get('id') title = request.POST.get('title') date = request.POST.get('date') exercise = Exercise.objects.filter(pk=id).update(title=title, date=date) return exercise
डेटाबेस में एक पंक्ति को अद्यतन करने के लिए, हम व्यायाम मॉडल पर उपलब्ध अद्यतन विधि का उपयोग कर सकते हैं। हालाँकि, अपडेट करने से पहले, हमें यह सुनिश्चित करना होगा कि हम सही अभ्यास अपडेट कर रहे हैं। ऐसा करने के लिए, हम अभ्यासों को प्राथमिक कुंजी, जो कि आईडी है, के आधार पर फ़िल्टर करते हैं और केवल उस विशिष्ट अभ्यास को अपडेट करते हैं।
इसी तरह, हम एक्सरसाइज.एचटीएमएल टेम्पलेट में प्रत्येक अभ्यास के आगे एक डिलीट बटन जोड़ देंगे।
हम नाम विशेषता के मान के रूप में डिलीट सेट करेंगे, और view.py में, हम डिलीट ऑपरेशन को संभालने के लिए if...elif स्टेटमेंट का विस्तार करेंगे।
def index(request): if request.method == 'POST': create = 'create' in request.POST update = 'update' in request.POST delete = 'delete' in request.POST if create == True: models.Exercise.create(request) elif update == True: models.Exercise.update(request) elif delete == True: models.Exercise.delete(request) return redirect('/') exercises = ( models.Exercise.objects.all().order_by("created_at") ) return render(request, "index.html", context={'exercises': exercises})
और एक्सरसाइज मॉडल में, हम क्लास मेथड डिलीट जोड़ देंगे।
def delete(request): id = request.POST.get('id') is_deleted = Exercise.objects.filter(pk=id).delete() if is_deleted == 1: return True return False
इस अतिरिक्त के साथ, हमने अपने पायथन और डीजेंगो एप्लिकेशन में सीआरयूडी संचालन को सफलतापूर्वक कार्यान्वित किया है।
from django.http import HttpResponseRedirect def index(request): ... return redirect('/') # or return HttpResponseRedirect(request.META['HTTP_REFERER'])
संक्षेप में, अपने POST अनुरोधों को प्रभावी ढंग से प्रबंधित करके और उचित पुनर्निर्देशन सुनिश्चित करके, हम अपने Django एप्लिकेशन में CRUD संचालन को लागू करते समय एक सहज उपयोगकर्ता अनुभव बना सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3