2009-12-12 5 views
7

Here in Google App Engines मुझे यह कोड मिला है जो किसी भी वेब पेज के एचटीएमएल कोड को अपने यूआरएल द्वारा लाने में मदद करेगा:Google ऐप इंजन से urlfetch आयात क्यों करें?

from google.appengine.api import urlfetch 
url = "http://www.google.com/" 
result = urlfetch.fetch(url) 
if result.status_code == 200: 
doSomethingWithResult(result.content) 

मुझे यहां एक चीज़ नहीं समझा (वास्तव में कई अन्य चीजों के बीच) क्यों सुझाया जाता है google.appengine.api से urlfecth आयात करने के लिए इस कोड में? क्या पाइथन के पास यह आदेश नहीं है?

उत्तर

5

google.appengine.api एक लाइब्रेरी है जिसमें Google का यूआरएलफ़ेच वर्ग का संस्करण शामिल है। का हवाला देते हुए from the manual:

URL लाएँ सेवा दक्षता और स्केलिंग उद्देश्यों के लिए गूगल की नेटवर्क बुनियादी ढांचे का उपयोग करता है।

पायथन के पास अपनी मानक लाइब्रेरी में यूआरएल पुनर्प्राप्ति कक्षाएं भी हैं, लेकिन वे ऐप इंजन के अंदर उपलब्ध बुनियादी ढांचे का उपयोग करने में सक्षम नहीं होंगे।

लघु google.appengine.api urlfetch में अधिक शक्तिशाली है, लेकिन आपके द्वारा पाइथन के अपने urllib का उपयोग करने से कुछ भी अवरुद्ध नहीं है, यह भी ऊपर दिए गए मैनुअल पेज में वर्णित है।

+0

स्पष्टीकरण के लिए धन्यवाद और लिंक – brilliant

+2

के लिए धन्यवाद यदि आप ऐपेंगिन पर प्रेजेंटप्लिब या urllib का उपयोग करते हैं तो यह Google के नेटवर्क आधारभूत संरचना का भी उपयोग करता है। iirc उन्हें urlfetch के लिए रैपर के रूप में जोड़ा गया था और उनके पाइथन stdlib चचेरे भाई के रूप में कम या ज्यादा व्यवहार करना चाहिए :) – tosh

+0

मैं देखता हूं। धन्यवाद। – brilliant

16

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

+1

इस स्पष्टीकरण के लिए निक, धन्यवाद। – brilliant

+0

स्रोत? क्या यह सुरक्षा कारणों से है कि वे यूआरएल प्राप्त करने के बिना आपको नेटवर्क कॉल करने की अनुमति नहीं देते हैं? – irwinb

+5

@irwinb स्रोत: मैंने ऐप इंजन टीम पर 4 से अधिक वर्षों तक काम किया। कारण अनचाहे सॉकेट एक्सेस के सुरक्षा प्रभावों का एक संयोजन है, और व्यावहारिक समस्याएं जो आपके ऐप से कंप्यूटर पर चलती हैं जो सीधे बाहरी दुनिया से बात नहीं करती है। –