MySQLdb सी मॉड्यूल के चारों ओर एक पतला अजगर आवरण है जो MySQL डेटाबेस के लिए एपीआई लागू करता है।
MySQLDb1 था रैपर का संस्करण कुछ समय पहले इस्तेमाल किया गया था और अब इसे एक विरासत माना जाता है। जैसे ही MySQLDb1 MySQLDb2 के रूप में विकसित होने लगा बग फिक्स और Python3 समर्थन के साथ, एक MySQLDb1 को फोर्क किया गया था और यहां बताया गया है कि कैसे mysqlclient बगफिक्स और Python3 समर्थन के साथ दिखाई दिया। संक्षेप में, तो अब हमारे पास MySQLDb2 है जो उत्पादन के उपयोग के लिए तैयार नहीं है, MySQLDb1 एक पुराने ड्राइवर के रूप में और एक समुदाय समर्थित mysqlclient बग फिक्स और Python3 समर्थन के साथ।
अब, उस गड़बड़ी को हल करने के लिए, MySQL MySQL एडेप्टर का अपना संस्करण प्रदान करता है - mysql कनेक्टर , एक ऑल-इन पायथन मॉड्यूल जो कोई C मॉड्यूल निर्भरता नहीं . के साथ MySQL API का उपयोग करता है और केवल मानक पायथन मॉड्यूल का उपयोग किया जाता है।
तो अब सवाल नीचे आता है:mysqlclient बनाम mysql कनेक्टर।
मेरे लिए, मैं आधिकारिक तौर पर समर्थित पुस्तकालय के साथ जाऊंगा, हालांकि mysqlclient
साथ ही एक अच्छा विकल्प होना चाहिए। उन दोनों को सक्रिय रूप से सुधारों और नई सुविधाओं के साथ अद्यतन किया जा रहा है जिन्हें आप अंतिम दिनों में सक्रिय प्रतिबद्धताओं द्वारा देख सकते हैं।
नोट:मुझे उनके साथ ज्यादा अनुभव नहीं था, इसलिए ऐसे मामले हो सकते हैं जब कोई एक या कोई अन्य आपकी आवश्यकताओं के अनुरूप न हो। दोनों पुस्तकालय PEP-249 का अनुसरण करते हैं मानक जिसका मतलब है कि आपको हर जगह कम से कम आधार कार्यक्षमता के साथ ठीक होना चाहिए।
स्थापना और निर्भरता
- mysqlclient
सी रैपर के कांटे के रूप में इसे सी मॉड्यूल को MySQL के साथ काम करने की आवश्यकता होती है जो इन एक्सटेंशन को बनाने के लिए पायथन हेडर फाइल जोड़ता है (पाइथन-देव पढ़ें)। स्थापना आपके द्वारा उपयोग की जाने वाली प्रणाली पर निर्भर करती है, बस सुनिश्चित करें कि आप पैकेज नामों से अवगत हैं और उन्हें स्थापित कर सकते हैं।
- mysql कनेक्टरमुख्य दस्तावेज़ बहुत स्पष्ट है, हालांकि आपको Protobuf C++ के बारे में पता होना चाहिए निर्भरता (mysql कनेक्टर के लिए संस्करण>=2.2.3 )।