अपने फ्लास्क ऐप को कॉच डीबी से कैसे कनेक्ट करें: एक नोएसक्यूएल डाटाबेस

फ्लास्क को PostgreSQL और SQLite जैसे SQL डेटाबेस से जोड़ना एक चिंच है। लेकिन ढांचा पूरी तरह से नोएसक्यूएल डेटाबेस जैसे कॉच डीबी के साथ भी समन्वयित करता है। और एक अतिरिक्त लाभ के रूप में, जब आप फ्लास्क के साथ कॉच डीबी का उपयोग करते हैं तो आप अपने डेटा को आसानी से पूछ सकते हैं।

अपने फ्लास्क ऐप के साथ कॉच डीबी जैसे नोएसक्यूएल का उपयोग करके बदलाव करने के लिए तैयार हैं? यहां बताया गया है कि कॉच डीबी को अपनी स्थानीय मशीन पर कैसे सेट करें और इसे फ्लास्क से कैसे कनेक्ट करें।

कॉच डीबी क्या है?

CouchDB एक NoSQL डेटाबेस है जो वर्तमान में Apache Software Foundation के स्वामित्व में है। एरलांग के साथ लिखित, सॉफ्टवेयर पहली बार 2005 में जारी किया गया था।

नियमित टेबल-लिंक्ड डेटाबेस के विपरीत, जिसका आप सबसे अधिक उपयोग कर रहे हैं, कॉच डीबी एक गैर-संबंधपरक डेटाबेस प्रबंधन प्रणाली है जो डेटा को कच्चे JSON के रूप में संग्रहीत करती है।

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

इस प्रकार, कॉच डीबी प्रश्नों के दौरान तेज है और एसिंक्रोनस विधियों का उपयोग करते समय काम करना आसान है। उस ने कहा, यह इसे अपने SQL समकक्ष से बेहतर नहीं बनाता है। प्रत्येक तकनीक के अपने पेशेवरों और विपक्ष हैं।

काउचडीबी सेट अप

कॉच डीबी का उपयोग शुरू करने के लिए, कॉच डीबी की आधिकारिक वेबसाइट से एक संगत संस्करण डाउनलोड और इंस्टॉल करें

और अगर वह नवीनतम संस्करण आपके लिए काम नहीं करता है, तो कॉच डीबी संग्रह पर जाएं और संस्करण 1.6.1 डाउनलोड करें, जो कि कॉच डीबी का पुराना संस्करण है।

एक बार जब आप कॉच डीबी स्थापित कर लेते हैं, तो इसे अपने पीसी पर चलाएं जैसे आप किसी अन्य डेस्कटॉप ऐप पर चलेंगे।

अपना ब्राउज़र खोलें। फिर निम्नलिखित को अपने एड्रेस बार में चिपकाकर कॉच डीबी के सर्वर को लॉन्च करें:

 http://localhost:5984/_utils/index.html

पायथन और फ्लास्क सेट करें

हालाँकि, यह ट्यूटोरियल मानता है कि आपके पीसी पर पहले से ही पायथन स्थापित है। अन्यथा, python.org पर जाएं और अपने पीसी पर पायथन का नवीनतम संस्करण स्थापित करें।

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

पिप का उपयोग करके वर्चुअल स्पेस में फ्लास्क का नवीनतम संस्करण स्थापित करें:

 pip install flask

कुप्पी को काउचडीबी से कनेक्ट करें

अपने फ्लास्क ऐप के साथ कॉच डीबी का उपयोग शुरू करने के लिए, फ्लास्क-कॉच डीबी स्थापित करें, डेटाबेस को फ्लास्क से जोड़ने के लिए रनटाइम पैकेज।

यह करने के लिए:

 pip install Flask-CouchDB

एक बार जब आप सफलतापूर्वक फ्लास्क- काउच डीबी स्थापित कर लेते हैं, तो उस रूट फ़ोल्डर में एक app.py फ़ाइल बनाएं। इसी तरह, एक database.py फ़ाइल बनाएँ—यह आपके डेटाबेस निर्माण को संभालती है।

ओपन database.py और आयात निम्न पैकेज:

 from couchdb import Server

इसके बाद, कोड के निम्नलिखित ब्लॉक का उपयोग करके उसी फ़ाइल में अपना डेटाबेस बनाएं:

 from couchdb import Server
server = Server()
db = server.create('muocouch')

सीएलआई के माध्यम से database.py निष्पादित करें । फिर अपने ब्राउज़र के माध्यम से कॉच डीबी के स्थानीय सर्वर को खोलें या रीफ्रेश करें जैसा आपने पहले किया था। अब आपको डेटाबेस (इस मामले में muocouch ) को CouchDB में सूचीबद्ध देखना चाहिए।

संबंधित: पायथन स्क्रिप्ट कैसे चलाएं

नोट: सुनिश्चित करें कि आप डेटाबेस के लिए लोअर-केस नामकरण परंपरा का उपयोग करते हैं, क्योंकि कॉच डीबी ऊपरी या मिश्रित मामलों को स्वीकार नहीं कर सकता है।

फ्लास्क का उपयोग करके अपना पहला कॉच डीबी डेटा स्टोर करें

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

शुरू करने के लिए, app.py खोलें और निम्नलिखित पैकेज आयात करें:

 from flask import Flask
from couchdb import Server
from flaskext.couchdb import Document

इसके बाद, फ्लास्क ऐप और कॉच डीबी सर्वर इंस्टेंस बनाएं:

 app = Flask(__name__, static_url_path='/static')
app.debug=True
server = Server()

अब कुछ उपयोगकर्ता इनपुट को CouchDB में संग्रहीत करते हैं:

 @app.route('/', methods=['GET', 'POST'])
def register():
user = {
"username":"media site",
"email":"[email protected]",
"password":"encrypteddata"
}
db = server['muocouch'] #select the database
doc_id, doc_rev = db.save(user) #store your data in th database
return "<h2>Your data should now be in the database</h2>"

यदि आप चाहें, तो आप अपने फ्लास्क सर्वर को चलाने से पहले उसे विकास मोड में सेट कर सकते हैं।

ऐसा करने के लिए, अपने सीएलआई के माध्यम से निम्न आदेश चलाएँ:

 set FLASK_ENV=development

ध्यान दें कि सर्वर मोड सेट करना वैकल्पिक है। यह केवल आपके कोड को डिबगिंग को परेशानी मुक्त बनाता है।

लेकिन सर्वर मोड सेटिंग की परवाह किए बिना, सीएमडी के माध्यम से फ्लास्क सर्वर को शुरू करने का तरीका यहां दिया गया है:

 flask run

हालाँकि, फ्लास्क आपके पोर्ट को लोकलहोस्ट: 5000 पर डिफॉल्ट करता है। एक बार जब आप इस पते को अपने ब्राउज़र के माध्यम से लोड कर लेते हैं, तो अब आपको संदेश को H2 टैग में देखना चाहिए।

CouchDB प्रश्नों का उपयोग करके डेटा सत्यापित करें और डुप्लिकेट जांचें

इसे और मानकीकृत करने के लिए, आप इनपुट को मान्य करने और अपने डेटाबेस में डुप्लिकेट को रोकने के लिए प्रश्नों का उपयोग कर सकते हैं। CouchDB को क्वेरी करना SQL डेटाबेस के साथ ऐसा करने के तरीके से थोड़ा अलग है।

CouchDB डेटाबेस से डेटा को क्वेरी करने के लिए "जावास्क्रिप्ट दृश्य" कहता है। सौभाग्य से, यह अपेक्षाकृत सरल है।

इससे पहले कि आप आगे बढ़ें, यहां बताया गया है कि एक बुनियादी CouchDB क्वेरी दृश्य कैसा दिखता है:

 map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
myQuery = [docType].query(db, map_func, reduce_fun=None)

अब उपरोक्त कोड का व्यावहारिक रूप से उपयोग करते हैं:

 #Create a document object model called " Users :"
class User(Document):
doc_type = 'User'
@app.route('/', methods=['GET', 'POST'])
def register():
user = {
"username":"media site",
"email":"[email protected]",
"password":"encrypteddata"
}
db = server['muocouch'] #select the database
# Use the view function to fetch your data from CouchDB
map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
# Get all the data by running a query set
myQuery = User.query(db, map_func, reduce_fun=None, reverse=True)
q = [i['username'] for i in myQuery] # Loop out all the usernames from the database
q2 = [i['email'] for i in myQuery] # Loop out all the email addresses from the database
q3 = q+q2 # Merge both queries into a single list
print(q3)
return "<h2>Your data is now in the database</h2>"

उपरोक्त कोड व्यू फ़ंक्शन द्वारा प्राप्त डेटा को क्वेरी करने के लिए उपयोगकर्ता वर्ग का उपयोग करता है। क्वेरी सेट ( myQuery ) के भीतर के मापदंडों पर पूरा ध्यान दें

मुद्रण q3 , जैसा आपने ऊपर किया था, अब कमांड लाइन के भीतर डेटाबेस में सभी उपयोगकर्ता नाम और ईमेल पते को आउटपुट करना चाहिए।

तो यहां बताया गया है कि आप उपयोगकर्ताओं के इनपुट को मान्य करने के लिए इस क्वेरी का उपयोग कैसे कर सकते हैं:

 if not (user['username'] in q3 or user['email'] in q3):
#store your data into the database if itdoesn't exist
doc_id, doc_rev = db.save(user)
return "<h2>Registered successfully</h2>"
else:
return "<h2>Username or email exists</h2>"

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

संबंधित: यदि कथन है तो पायथन का उपयोग कैसे करें

बस! आपने फ्लास्क-काउच डीबी का उपयोग करके अपना पहला नोएसक्यूएल डेटाबेस बनाया है।

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

आप इनपुट को मान्य करने के लिए अपनी क्वेरी को जावास्क्रिप्ट के jQuery पर भी भेज सकते हैं और डुप्लिकेट को अतुल्यकालिक रूप से जांच सकते हैं।

क्या CouchDB SQL डेटाबेस से बेहतर है?

फ्लास्क या किसी अन्य प्रोग्रामिंग तकनीक के साथ कॉच डीबी या किसी अन्य नोएसक्यूएल डेटाबेस का आपकी पसंद पर निर्भर करता है। लेकिन यह स्ट्रक्चरलेस डेटा और रॉ मीडिया के साथ काम करते समय काम आता है।

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