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