aiohttp – एसिंक्रोनस HTTP अनुरोध (Asynchronous HTTP Requests)

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

aiohttp का परिचय

aiohttp Python में HTTP क्लाइंट और सर्वर के लिए एक शक्तिशाली एसिंक्रोनस लाइब्रेरी है। यह asyncio पर आधारित है और स्केलेबल वेब एप्लिकेशन बनाने और समानांतर HTTP अनुरोध करने के लिए एक लचीला इंटरफ़ेस प्रदान करती है। यह लाइब्रेरी HTTP/1.1, WebSocket, कुकीज़, सेशन और लोकप्रिय टेम्पलेट इंजनों के साथ एकीकरण को सपोर्ट करती है।

aiohttp क्या है

aiohttp (Asynchronous I/O HTTP) एक व्यापक Python लाइब्रेरी है जो एसिंक्रोनस प्रोग्रामिंग का उपयोग करके HTTP क्लाइंट और HTTP सर्वर दोनों की कार्यक्षमता को एक साथ जोड़ती है। asyncio के साथ काम करने के लिए डिज़ाइन की गई, यह हजारों समवर्ती कनेक्शनों को संभालने में सक्षम हाई-परफॉर्मेंस वेब एप्लिकेशन बनाने की अनुमति देती है।

लाइब्रेरी की मुख्य क्षमताएं

aiohttp लाइब्रेरी आधुनिक वेब एप्लिकेशन विकसित करने के लिए कई प्रकार की सुविधाएं प्रदान करती है। यह बाहरी API के साथ इंटरैक्ट करने के लिए सरल HTTP क्लाइंट और मिडलवेयर, रूटिंग और टेम्पलेटिंग के सपोर्ट के साथ पूर्ण वेब सर्वर दोनों बनाने में सहायक है।

aiohttp के लाभ और विशेषताएं

एसिंक्रोनस आर्किटेक्चर

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

उपयोग की बहुमुखी प्रतिभा

aiohttp एक ही पैकेज में क्लाइंट और सर्वर दोनों की कार्यक्षमता को सपोर्ट करता है। इसका मतलब है कि डेवलपर्स एक ही लाइब्रेरी का उपयोग करके पूर्ण वेब एप्लिकेशन बना सकते हैं जो एक साथ HTTP क्लाइंट और सर्वर के रूप में काम करते हैं।

आधुनिक तकनीकों के लिए अंतर्निहित सपोर्ट

लाइब्रेरी मूल रूप से WebSocket को सपोर्ट करती है, जिससे रीयल-टाइम इंटरैक्टिव एप्लिकेशन बनाना संभव होता है। इसमें JSON, फॉर्म और फ़ाइलों सहित विभिन्न डेटा फॉर्मेट के लिए भी सपोर्ट शामिल है।

विस्तारशीलता और लचीलापन

aiohttp अतिरिक्त कार्यक्षमता जोड़ने के लिए मिडलवेयर सिस्टम, URL हैंडलर को व्यवस्थित करने के लिए रूटिंग सिस्टम और लोकप्रिय टेम्पलेट इंजनों के साथ एकीकरण की सुविधा प्रदान करता है।

इंस्टॉलेशन और बेसिक सेटअप

मुख्य लाइब्रेरी की स्थापना

pip install aiohttp

अतिरिक्त डिपेंडेंसी की स्थापना

Jinja2 टेम्पलेट के साथ काम करने के लिए:

pip install aiohttp_jinja2 jinja2

सेशन के साथ काम करने के लिए:

pip install aiohttp_session

इंस्टॉलेशन की जांच

इंस्टॉलेशन के बाद लाइब्रेरी का वर्जन चेक करें:

import aiohttp
print(aiohttp.__version__)

aiohttp के साथ एसिंक्रोनस HTTP क्लाइंट

ClientSession के साथ बुनियादी काम

ClientSession aiohttp में HTTP अनुरोध करने के लिए मुख्य क्लास है। यह कनेक्शन पूल को मैनेज करता है और कनेक्शनों के कुशल पुन: उपयोग को सुनिश्चित करता है।

import aiohttp
import asyncio

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.text()

# एसिंक्रोनस फंक्शन चलाएं
asyncio.run(fetch('https://example.com'))

क्लाइंट सेशन का कॉन्फ़िगरेशन

async def create_configured_session():
    timeout = aiohttp.ClientTimeout(total=30)
    connector = aiohttp.TCPConnector(limit=100, limit_per_host=10)
    
    async with aiohttp.ClientSession(
        timeout=timeout,
        connector=connector,
        headers={'User-Agent': 'MyApp/1.0'}
    ) as session:
        return session

GET और POST अनुरोध भेजना

GET अनुरोध करना

async                    

अनुशंसाएँ