paint-brush
फ़्लिक्स-फ़ाइंडर: Django और ब्राइट डेटा के साथ एक मूवी अनुशंसा ऐप बनाना [भाग 3/3]द्वारा@infinity
2,032 रीडिंग
2,032 रीडिंग

फ़्लिक्स-फ़ाइंडर: Django और ब्राइट डेटा के साथ एक मूवी अनुशंसा ऐप बनाना [भाग 3/3]

द्वारा Rishabh Agarwal6m2023/07/17
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

फ़्लिक्स-फाइंडर को कुछ प्रक्रिया की आवश्यकता है जिसके माध्यम से नई फिल्मों को प्रतिबिंबित करने के लिए इसके मूवी डेटा को अपडेट किया जा सके। यह कुछ ऐसा है जिसे हम इस अंतिम भाग में लागू करेंगे! इस कार्यक्षमता को लागू करने के कई तरीके हैं। हम एक नया एंडपॉइंट बनाना चाहते हैं जिसका उपयोग डेटा को अपडेट करने के लिए किया जा सके। आपका डेटा तुरंत बदल जाएगा, जैसे कि जब आप कोई बटन दबाते हैं।
featured image - फ़्लिक्स-फ़ाइंडर: Django और ब्राइट डेटा के साथ एक मूवी अनुशंसा ऐप बनाना [भाग 3/3]
Rishabh Agarwal HackerNoon profile picture
0-item
1-item


आप तीन भागों की शृंखला का तीसरा भाग पढ़ रहे हैं। यह अत्यधिक प्रोत्साहित किया जाता है कि आप इस भाग पर आगे बढ़ने से पहले पिछले दो लेख पढ़ें!


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


फ़्लिक्स-फाइंडर को कुछ प्रक्रिया की आवश्यकता है जिसके माध्यम से नई फिल्मों को प्रतिबिंबित करने के लिए इसके मूवी डेटा को अपडेट किया जा सके। और, यह कुछ ऐसा है जिसे हम इस अंतिम भाग में लागू करेंगे!


इस तथ्य के बावजूद कि इस कार्यक्षमता को लागू करने के कई तरीके हैं, हम एक नया एंडपॉइंट बनाएंगे जिसका उपयोग डेटा को अपडेट करने के लिए किया जा सकता है। आपका डेटा तुरंत बदल जाएगा, जैसे कि जब आप कोई बटन दबाते हैं। लेकिन अन्य रणनीतियाँ भी हैं, जैसे क्रोनजॉब का उपयोग करना। एक बार इस ब्लॉग में एक रणनीति की बारीकियों का वर्णन किया गया है, तो समान अवधारणाओं का उपयोग करके कोई भी नई तकनीक आसानी से बनाई जा सकती है।

इसकी पूरी योजना बना रहे हैं...


इससे पहले कि हम कोड करना शुरू करें, आइए एक कदम पीछे हटें और अपनी सभी आवश्यकताओं को समझें।


हम एक नया एंडपॉइंट बनाना चाहते हैं और उस एंडपॉइंट पर जाकर फ़्लिक्स-फाइंडर द्वारा उपयोग किए जाने वाले डेटा को अपडेट करना चाहिए। आइए हम /update एंडपॉइंट का उपयोग करें और इस एंडपॉइंट पर आने वाले किसी भी GET अनुरोध को हमारे ऐप द्वारा उपयोग किए जाने वाले डेटा को अपडेट करना चाहिए।


इंटरफ़ेस की योजना के साथ, आइए अब ' डेटा को कैसे अपडेट करें? ' के बारे में सोचें। ' .


डेटा अपडेट करने की प्रक्रिया को तीन चरणों में विभाजित किया जा सकता है:

(1) कलेक्टर्स को ब्राइट डेटा पर पुनः चलाएँ

(2) कलेक्टर को चलाने से प्राप्त परिणाम प्राप्त करें

(3) परिणामों को स्थिर फ़ाइलों पर अधिलेखित करें


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


महान! सब कुछ योजनाबद्ध करके, आइए कार्यान्वयन शुरू करें।


फ़्लिक्स-फाइंडर में नया समापन बिंदु जोड़ा जा रहा है

Django में अनुशंसाकर्ता ऐप की view.py फ़ाइल के अंदर एक नई विधि बनाकर प्रारंभ करें। हम इस विधि को updateData कहेंगे। यहीं पर स्थैतिक डेटा को अद्यतन करने का हमारा सारा तर्क निहित होगा।


 # recommender/views.py def update(request): # TODO: Implement this method return HttpResponse("Movie Data Updated!")


आइए हम भी अपने विचार स्थापित करें। हमें दृश्यों में नव निर्मित विधि के लिए मैपिंग जोड़ने की आवश्यकता है।


 # recommender/urls.py from django.urls import path from . import views urlpatterns = [ path("", views.index, name = "index"), path("update", views.updateData, name = "update data") ]


इसके साथ, हमने फ़्लिक्स-फाइंडर में सफलतापूर्वक एक नया एंडपॉइंट बनाया है। हम स्थैतिक डेटा को अद्यतन करने के लिए इस समापन बिंदु का उपयोग करेंगे। अभी के लिए, यह समापन बिंदु कुछ नहीं करता है और बस एक स्ट्रिंग संदेश लौटाता है।


 ➜ ~ curl localhost:8000/update Movie Data Updated!

ब्राइट डेटा पर एपीआई टोकन जनरेट करना

इससे पहले कि हम डेटा अपडेट के लिए ब्राइट डेटा एपीआई का उपयोग शुरू कर सकें, हमें एक एपीआई टोकन जेनरेट करना होगा।


ब्राइट डेटा के सभी संचारों में यह टोकन शामिल होना चाहिए और इसका उपयोग प्रमाणीकरण उद्देश्यों के लिए किया जाता है।


एपीआई टोकन जनरेट करने के चरण:

  1. https://brightdata.com/cp/setting पर जाएं।
  2. एपीआई टोकन अनुभाग में, Add Token बटन पर क्लिक करें।
  3. संवाद बॉक्स में, उपयोगकर्ता, अनुमति और समाप्ति तिथि का चयन करें।
  4. सेव बटन पर क्लिक करें और 2FA कोड दर्ज करें।
  5. जेनरेट किए गए टोकन को कॉपी करें और सुरक्षित रूप से रखें।


सुनिश्चित करें कि आपका एपीआई टोकन लीक न हो। आपके एपीआई टोकन तक पहुंच रखने वाला कोई भी व्यक्ति सचमुच ब्राइट डेटा पर आपकी नकल कर सकता है!!!


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

संग्राहकों को आरंभ करने के लिए एपीआई

अपने संग्राहकों के एपीआई अनुभाग द्वारा आरंभ करें पर जाएं।



यहां आपको कर्ल अनुरोध मिलेंगे जिनका उपयोग आप कलेक्टरों को फिर से चलाने और परिणाम लाने के लिए कर सकते हैं।


कलेक्टर रन शुरू करने के लिए एपीआई: ब्राइट डेटा कलेक्टर रन शुरू करने के लिए एक समापन बिंदु प्रदान करता है। समापन बिंदु https://api.brightdata.com/dca/trigger_immediate एक POST अनुरोध की अपेक्षा करता है। यह एक क्वेरी पैरामीटर ' कलेक्टर ' की भी अपेक्षा करता है जिसका उपयोग कलेक्टर की विशिष्ट पहचान के लिए किया जाता है। हेडर में एपीआई टोकन होना चाहिए।


यहाँ उसी के लिए कर्ल अनुरोध है।


 curl -H "Authorization: Bearer API_TOKEN" -H "Content-Type: application/json" -d '{}' "https://api.brightdata.com/dca/trigger_immediate?collector=c_rj3i0wspnhr0ataba"


इस समापन बिंदु की प्रतिक्रिया एक प्रतिक्रिया आईडी है। इसका उपयोग बाद में परिणाम प्राप्त करने के लिए किया जा सकता है।


कलेक्टर रन से परिणाम लाने के लिए एपीआई: कलेक्टर चलाने से प्राप्त प्रतिक्रिया आईडी के साथ, ब्राइट डेटा हमें कलेक्टर रन से परिणाम लाने के लिए एक और एपीआई प्रदान करता है। समापन बिंदु https://api.brightdata.com/dca/get_result एक GET अनुरोध की अपेक्षा करता है। यह एक क्वेरी पैरामीटर 'रिस्पॉन्स_आईडी' की भी अपेक्षा करता है जिसका उपयोग कलेक्टर को विशिष्ट रूप से पहचानने के लिए किया जाता है। हेडर में एपीआई टोकन होना चाहिए।


इस समापन बिंदु के लिए कर्ल अनुरोध इस प्रकार दिखेगा।


 curl "https://api.brightdata.com/dca/get_result?response_id=RESPONSE_ID" -H "Authorization: Bearer API_TOKEN"


अद्यतन समापन बिंदु को कार्यान्वित करना

उपयोग के लिए एंडपॉइंट के ज्ञान और एपीआई टोकन के साथ, हम अपडेट एंडपॉइंट को लागू करना शुरू कर सकते हैं।


आइए इस समापन बिंदु को उन उप-कार्यों के अनुसार लागू करें जिन्हें हमने शुरू में पहचाना था।

(1) कलेक्टर्स को ब्राइट डेटा पर पुनः चलाएँ

(2) कलेक्टर को चलाने से प्राप्त परिणाम प्राप्त करें

(3) परिणामों को स्थिर फ़ाइलों पर अधिलेखित करें


सबसे पहले हमें री-रन कलेक्टर एपीआई का उपयोग करना होगा और एक प्रतिक्रिया आईडी प्राप्त करनी होगी। हम इस कार्य को करने के लिए पायथन की अनुरोध लाइब्रेरी का उपयोग करेंगे।


 API_TOKEN = "###########" # Replace by your API Token response = requests.post( "https://api.brightdata.com/dca/trigger_immediate?collector=c_rj3i0wspnhr0ataba", headers={"Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json"}, json={} ) if response.status_code < 200 or response.status_code > 299 or 'response_id' not in response.json(): return HttpResponseServerError('Something Wrong Happened') response_id = response.json().get('response_id')


अगला चरण परिणाम प्राप्त करने के लिए प्रतिक्रिया आईडी का उपयोग करना है। परिणाम प्राप्त करने का प्रयास करने से पहले हम कुछ समय तक प्रतीक्षा करेंगे।


 time.sleep(30) # Sleeping for 30 seconds get_results_response = requests.get( f"https://api.brightdata.com/dca/get_result?response_id={response_id}", headers={"Authorization": f"Bearer {API_TOKEN}"} )


हाथ में डेटा होने पर, हम इस नए डेटा के साथ स्थिर फ़ाइल को अधिलेखित कर सकते हैं।


 movie_data = get_results_response.json() data_file = open(ROTTEN_TOMATO_DATA_FILE_PATH, encoding="utf8", mode="w") json.dump(movie_data, data_file, indent=4) data_file.close()


इसके साथ ही अद्यतन पद्धति का कार्यान्वयन पूरा हो गया है।

नए समापन बिंदु का उपयोग करना

डेटा अपडेशन प्रक्रिया शुरू करने के लिए एंडपॉइंट localhost:8000/update पर एक सरल कर्ल अनुरोध किया जा सकता है। एक बार एपीआई वापस आ जाए, तो डेटा अपडेट हो जाएगा।


 ➜ ~ curl localhost:8000/update Movie Data Updated!

समापन टिप्पणी

अंततः, हम इस खंड के निष्कर्ष पर पहुँच गये हैं। फ़्लिक्स-फाइंडर में, हम डेटा अपडेटिंग कार्यक्षमता को एकीकृत करने में सक्षम थे। परिणामस्वरूप, हमारा फ़्लिक्स-फाइंडर अपने उपयोगकर्ताओं के लिए हमेशा ताज़ा डेटा के साथ उपलब्ध रहेगा!


मुझे आशा है कि आपको तीन भाग वाली श्रृंखला पसंद आयी होगी। इस Github रिपॉजिटरी में संपूर्ण संग्रह का स्रोत कोड शामिल है।


ऐसे और भी अद्भुत लेखों के लिए आप मुझे HackerNoon पर फ़ॉलो कर सकते हैं। अगले लेख में मिलते हैं... तब तक, हैप्पी लर्निंग! 🙂