पायथन और टिंकर लाइब्रेरी के साथ अपना स्वयं का समाचार एप्लिकेशन बनाना सीखें।

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

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

टिंकर स्थापित करें और मॉड्यूल का अनुरोध करें

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

स्थापित करने के लिए tkinter अपने सिस्टम में, टर्मिनल में निम्न कमांड चलाएँ:

पिप टिंकर स्थापित करें

अनुरोध मॉड्यूल HTTP अनुरोध करना आसान बनाता है। इस के साथ,

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

पिप स्थापित अनुरोध

आप इसमें पायथन का उपयोग करके समाचार एप्लिकेशन का संपूर्ण स्रोत कोड पा सकते हैं गिटहब रिपॉजिटरी.

समाचार एपीआई कुंजी उत्पन्न करें

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

से tkinter आयात *
से tkinter आयात संदेश बॉक्स
आयात अनुरोध

एपीआईके = 'Your_API_KEY'

ऐप की संरचना को परिभाषित करें

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

कक्षान्यूजऐप:
वैश्विक एपीआईकी, टाइप करें
डीईएफ़__इस में__(स्वयं, जड़):
स्व.जड़ = जड़
स्व.रूट.ज्यामिति ('1000x650')
सेल्फ.रूट.टाइटल ("समाचार आवेदन")
स्व समाचार श्रेणी बटन = []
स्व समाचार श्रेणी = ["आम", "मनोरंजन", "खेल", "तकनीकी"]

एक लेबल परिभाषित करें जो आपके आवेदन के शीर्षक के रूप में कार्य करता है। उस मूल तत्व को पास करें जिसमें आप इसे रखना चाहते हैं, वह पाठ जो इसे प्रदर्शित करना चाहिए, फ़ॉन्ट शैली, पैडिंग और पृष्ठभूमि का रंग होना चाहिए। उपयोग सामान बाँधना() भरण विकल्प का उपयोग करके लेबल को X दिशा में पूरे स्थान पर कब्जा कर लेता है।

ए परिभाषित करें लेबल फ्रेम और उसके मूल तत्व को उसके पास होने वाले पृष्ठभूमि रंग के साथ सेट करें। उपयोग जगह() इसे निर्दिष्ट निर्देशांक पर व्यवस्थित करने के लिए कार्य करें। इसके अतिरिक्त, फ्रेम की चौड़ाई और ऊंचाई पास करें।

 शीर्षक = लेबल (self.root, text="समाचार आवेदन", फॉन्ट=("टाइम्स न्यू रोमन", 28, "निडर"), पद्य =2, बीजी ='#ff007f'.पैक (भरें = एक्स)
एफ 1 = लेबलफ्रेम (सेल्फ.रूट, बीजी ='#fc6c85')
F1.place (x=20, वाई =80, चौड़ाई =215, ऊंचाई =210)

लूप के लिए परिभाषित करें जो की लंबाई के माध्यम से चलता है newsCat सूची। पहले परिभाषित फ्रेम में एक बटन को परिभाषित करें। प्रदर्शित होने वाले टेक्स्ट को पास करें और इसे अपरकेस में बदलें। चौड़ाई, सीमा की गहराई, फ़ॉन्ट शैली और बटनों की पृष्ठभूमि का रंग पास करें। उपयोग जाल प्रबंधक बटनों को एक स्तंभ प्रारूप में व्यवस्थित करने और X और Y दिशाओं में पैडिंग जोड़ने के लिए।

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

के लिए मैं में रेंज (लेन (सेल्फ.न्यूज कैटेगरी)):
बी = बटन (F1, पाठ = स्व। समाचार श्रेणी [i]। ऊपरी (), चौड़ाई =15, बीडी =3, फ़ॉन्ट ="एरियल 14 बोल्ड", बीजी ='#c154c1')
b.ग्रिड (पंक्ति = i, स्तंभ =0, पैडएक्स =10, पद्य =5)
ख. बाइंड ('', खुद। समाचार क्षेत्र)
self.newsCategoryButton.append (बी)

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

टेक्स्ट विजेट को परिभाषित करें। मूल तत्व को इस फ्रेम के रूप में फ़ॉन्ट शैली और पृष्ठभूमि रंग के साथ पास करें। का मान निर्धारित करने पर yscrollcommand जैसा स्क्रॉल_वाई.सेट यह उपयोगकर्ता इंटरैक्शन पर स्क्रॉलबार की वर्तमान स्थिति प्राप्त करता है।

 F2 = फ्रेम (सेल्फ.रूट, bd=3)
F2.place (x=260, वाई =80, रिलेविड्थ =0.7, रिलेहाइट =0.8)
स्क्रॉल_y = स्क्रॉलबार (F2, ओरिएंट = वर्टिकल)
self.txtarea = टेक्स्ट (F2, yscrollcommand=scroll_y.set, फॉन्ट=("टाइम्स न्यू रोमन", 15, "निडर"), बीजी ='#fc6c85')

उपयोग सामान बाँधना() फिल विकल्प स्क्रॉलबार को फ्रेम के दाईं ओर रखने के लिए और वाई दिशा में पूरे स्थान पर कब्जा करने के लिए। कमांड पैरामीटर को इस रूप में सेट करने पर txtarea.yview, स्क्रॉलबार की गति ऊपर और नीचे के कार्यों से जुड़ जाती है। इसलिए, जब उपयोगकर्ता स्क्रॉलबार के साथ इंटरैक्ट करता है, तो टेक्स्ट क्षेत्र के विचार तदनुसार बदल जाते हैं।

उपयोग डालना() उपयोगकर्ता को एक श्रेणी का चयन करने और किसी भी मौजूदा पाठ के अंत में रखने के लिए कहने की विधि। उपयोग सामान बाँधना() पाठ विजेट को X और Y दिशा में स्थान लेने के लिए कहने की विधि और यदि आवश्यक हो तो अतिरिक्त स्थान निर्दिष्ट करने के लिए बढ़ाना पैरामीटर।

 स्क्रॉल_वाई.पैक (साइड = राइट, फिल = वाई)
स्क्रॉल_y.कॉन्फिग (कमांड=self.txtarea.yview)
self.txtarea.insert (END,"एक श्रेणी चुनें:")
self.txtarea.pack (भरें = दोनों, विस्तार करें =1)

एपीआई प्रतिक्रिया से समाचार निकालें

एक समारोह परिभाषित करें, न्यूज़एरिया () जो वर्ग के वर्तमान उदाहरण और बटन घटना को स्वीकार करता है। उपयोगकर्ता द्वारा चुने गए समाचारों की श्रेणी को लोअरकेस में पास करें और उसे संग्रहीत करें। आधार URL के लिए आवश्यक पैरामीटर पास करें और पहली अनुक्रमणिका से अंतिम तक मौजूद किसी भी पाठ को हटा दें। सीमांकन के लिए एक रेखा डालें।

ए परिभाषित करें कोशिश बेस URL में परिभाषित सर्वर को HTTP GET अनुरोध ब्लॉक करें और भेजें। प्रतिक्रिया को JSON प्रारूप में कनवर्ट करें और उस सामग्री को निकालें जिसके पास कुंजी है सामग्री और इसे एक चर में संग्रहित करें।

डीईएफ़समाचार क्षेत्र(स्वयं, घटना):
प्रकार = event.widget.cget('मूलपाठ')।निचला()
BASE_URL = एफ' http://newsapi.org/v2/top-headlines? देश=में&श्रेणी={प्रकार}&apiKey=' + एपीआईके
स्व.txtarea.delete ("1.0", अंत)
self.txtarea.insert (END, "\एन")
कोशिश:
लेख = (requests.get (BASE_URL).json())['लेख']

यदि प्राप्त किए गए लेखों की संख्या शून्य नहीं है, तो एक लूप चलाएँ और पाठ विजेट में एक-एक करके लेख सम्मिलित करें। अलग-अलग पंक्तियों में शीर्षक, उसके बाद विवरण, सामग्री और URL प्रदर्शित करें। सीमांकन के लिए दो पंक्तियाँ डालें। यदि लेखों की संख्या शून्य है, तो प्रदर्शित करें कि उस विशेष श्रेणी के लिए कोई समाचार उपलब्ध नहीं है।

यदि प्रयास ब्लॉक विफल हो जाता है, तो उपयोगकर्ताओं को उचित त्रुटि संदेश प्रदर्शित करने के लिए अपवाद ब्लॉक का उपयोग करें।

अगर (लेख! = 0):
के लिए मैं में रेंज (लेन (लेख)):
self.txtarea.insert (END, एफ"{लेख[मैं][मैं]'शीर्षक']}\एन")
self.txtarea.insert (END, एफ"{लेख[मैं][मैं]'विवरण']}\एन")
self.txtarea.insert (END, एफ"{लेख[मैं][मैं]'संतुष्ट']}\एन")
self.txtarea.insert (END, च" और अधिक पढ़ें...{लेख[मैं][मैं]'यूआरएल']}\एन")
self.txtarea.insert (END, "\एन")
self.txtarea.insert (END, "\एन")
अन्य:
self.txtarea.insert (END, "कोई समाचार उपलब्ध नहीं")
के अलावा अपवाद जैसा इ:
संदेशबॉक्स.शोएरर ('गलती', "क्षमा करें, हम कुछ मुद्दों में भाग गए। कृपया इंटरनेट कनेक्शन जांचें और पुनः प्रयास करें।")

कक्षा का एक उदाहरण बनाएं और इसे प्रारंभ करें। मुख्य घेरा() फ़ंक्शन पायथन को टिंकर इवेंट लूप चलाने के लिए कहता है और जब तक आप विंडो बंद नहीं करते तब तक ईवेंट सुनें।

रूट = टीके ()
obj = न्यूज़एप (रूट)
रूट.मेनलूप ()

सभी कोड एक साथ रखें और आपका एप्लिकेशन विभिन्न श्रेणियों के अनुसार समाचार प्रदर्शित करने के लिए तैयार है।

समाचार अनुप्रयोग का आउटपुट

प्रोग्राम चलाने पर, टेक्स्ट क्षेत्र एक श्रेणी का चयन करने के लिए कहता है। किसी भी बटन पर क्लिक करने पर, यह उस श्रेणी के लिए विवरण, सामग्री और उसके लिंक (यदि मौजूद हो) के साथ समाचार को दो पंक्तियों से अलग करके प्रदर्शित करता है।

आपके पायथन प्रोजेक्ट के लिए उपयोगी एपीआई

मौजूदा सॉफ्टवेयर सिस्टम के साथ नए एप्लिकेशन को एकीकृत करने के लिए एपीआई बहुत आसान हैं। आप किसी भी क्षेत्र के मौसम की वास्तविक समय की जानकारी प्राप्त करने के लिए OpenWeatherMap API का उपयोग कर सकते हैं और अपने वेबसाइट एप्लिकेशन में मानचित्रों को शामिल करने के लिए Google मानचित्र API का उपयोग कर सकते हैं। आप गिटहब एपीआई के माध्यम से गिटहब कार्यों को स्वचालित कर सकते हैं और वीडियो कॉन्फ्रेंसिंग को एकीकृत करने के लिए ज़ूम एपीआई का उपयोग कर सकते हैं।

आप OpenAI के API का उपयोग करके अपने स्वयं के ऐप्स से ChatGPT की शक्ति का उपयोग कर सकते हैं और कुछ आकर्षक AI-संचालित एप्लिकेशन बना सकते हैं।