কীভাবে আপনার ফ্লাস্ক অ্যাপটি কাউচডিবি দিয়ে সংযুক্ত করবেন: একটি নোএসকিউএল ডেটাবেস

কীভাবে আপনার ফ্লাস্ক অ্যাপটি কাউচডিবি দিয়ে সংযুক্ত করবেন: একটি নোএসকিউএল ডেটাবেস

পোস্টগ্রেএসকিউএল এবং এসকিউএলাইটের মতো এসকিউএল ডাটাবেসের সাথে ফ্লাস্ক সংযুক্ত করা একটি চিমটি। কিন্তু কাঠামোটি কাউচডিবি এর মতো NoSQL ডাটাবেসের সাথে পুরোপুরি সিঙ্ক করে। এবং একটি অতিরিক্ত সুবিধা হিসাবে, যখন আপনি ফ্লাস্কের সাথে CouchDB ব্যবহার করেন তখন আপনি সহজেই আপনার ডেটা জিজ্ঞাসা করতে পারেন।





আপনার ফ্লাস্ক অ্যাপ দিয়ে কাউচডিবি এর মত একটি NoSQL ব্যবহার করে একটি পরিবর্তন করতে প্রস্তুত? আপনার স্থানীয় মেশিনে কাউচডিবি কীভাবে সেট করবেন এবং এটিকে ফ্লাস্কের সাথে সংযুক্ত করবেন তা এখানে।





কাউচডিবি কি?

কাউচডিবি একটি নোএসকিউএল ডাটাবেস যা বর্তমানে অ্যাপাচি সফটওয়্যার ফাউন্ডেশনের মালিকানাধীন। Erlang এর সাথে লেখা, সফটওয়্যারটি প্রথম 2005 সালে প্রকাশিত হয়েছিল।





নিয়মিত টেবিল-সংযুক্ত ডাটাবেসের বিপরীতে আপনি সম্ভবত ব্যবহার করেছেন, কাউচডিবি একটি নন-রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম যা কাঁচা JSON হিসাবে ডেটা সঞ্চয় করে।

কাউচডিবি নন-ব্লকিং, তাই এটি ডেটা ইনপুটের সময় ডাটাবেস লক করে না। CouchDB- এর একটি শক্তিশালী বিষয় হল এটি ডেটা পড়তে এবং লিখতে মাল্টি-ভার্সন কনকুরেন্সি কন্ট্রোল পলিসি ব্যবহার করে। সুতরাং এটি ডাটাবেসের ডেটা বিদ্যমান কাঠামো থেকে হস্তক্ষেপ ছাড়াই একাধিক ব্যবহারকারীর কাছ থেকে একযোগে ইনপুট করার অনুমতি দেয়।



সুতরাং, কোচডিবি প্রশ্নের সময় দ্রুত এবং অসিঙ্ক্রোনাস পদ্ধতি ব্যবহার করার সময় কাজ করা সহজ। যে বলেন, এটি এটি তার এসকিউএল প্রতিপক্ষের চেয়ে ভাল করে না। প্রতিটি প্রযুক্তির নিজস্ব সুবিধা এবং অসুবিধা রয়েছে।

কাউচডিবি সেট আপ

কাউচডিবি ব্যবহার শুরু করতে, থেকে একটি সামঞ্জস্যপূর্ণ সংস্করণ ডাউনলোড এবং ইনস্টল করুন CouchDB এর অফিসিয়াল ওয়েবসাইট





এবং যদি সেই সর্বশেষ সংস্করণটি আপনার জন্য কাজ না করে, তাহলে এগিয়ে যান কাউচডিবি আর্কাইভ এবং সংস্করণ 1.6.1 ডাউনলোড করুন, যা CouchDB এর আগের সংস্করণ।

একবার আপনি CouchDB ইন্সটল করলে, এটি আপনার পিসিতে চালান যেমন আপনি অন্য কোন ডেস্কটপ অ্যাপের মতো।





আপনার ব্রাউজার খুলুন। তারপর আপনার ঠিকানা বারে নিম্নলিখিতগুলি আটকিয়ে CouchDB এর সার্ভারটি চালু করুন:

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

পাইথন এবং ফ্লাস্ক সেট আপ করুন

এই টিউটোরিয়ালটি অবশ্য ধরে নিয়েছে যে আপনার পিসিতে ইতিমধ্যেই পাইথন ইনস্টল আছে। অন্যথায়, যান python.org এবং আপনার পিসিতে পাইথনের সর্বশেষ সংস্করণটি ইনস্টল করুন।

একবার আপনি CouchDB সেট আপ করলে, একটি প্রজেক্ট রুট ফোল্ডার তৈরি করুন। তারপরে সেই ডিরেক্টরিতে আপনার কমান্ড লাইনটি খুলুন এবং একটি তৈরি করুন পাইথন ভার্চুয়াল পরিবেশ

ব্যবহার করে ভার্চুয়াল স্পেসে ফ্লাস্কের সর্বশেষ সংস্করণ ইনস্টল করুন পিপ :

গুগল ডক্সে কিভাবে টেক্সট বক্স োকানো যায়
pip install flask

কাউচডিবি দিয়ে ফ্লাস্ক সংযুক্ত করুন

আপনার ফ্লাস্ক অ্যাপ দিয়ে CouchDB ব্যবহার শুরু করতে, ইনস্টল করুন ফ্লাস্ক-কাউচডিবি , ফ্লাস্কের সাথে ডাটাবেস সংযুক্ত করার জন্য রানটাইম প্যাকেজ।

এটা করতে:

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 CLI এর মাধ্যমে। তারপরে আপনার ব্রাউজারের মাধ্যমে কাউচডিবি এর স্থানীয় সার্ভারটি খুলুন বা রিফ্রেশ করুন যেমনটি আপনি আগে করেছিলেন। আপনার এখন ডাটাবেস দেখা উচিত ( 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()

এখন আসুন কিছু ব্যবহারকারীর ইনপুট কাউচডিবিতে সংরক্ষণ করি:

@app.route('/', methods=['GET', 'POST'])
def register():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
doc_id, doc_rev = db.save(user) #store your data in th database
return '

Your data should now be in the database

'

আপনি যদি চান, আপনি এটি চালানোর আগে আপনার ফ্লাস্ক সার্ভারকে ডেভেলপমেন্ট মোডে সেট করতে পারেন।

এটি করার জন্য, আপনার CLI এর মাধ্যমে নিম্নলিখিত কমান্ডটি চালান:

set FLASK_ENV=development

লক্ষ্য করুন যে সার্ভার মোড সেট করা alচ্ছিক। এটি শুধুমাত্র আপনার কোড ঝামেলা মুক্ত ডিবাগিং করে তোলে।

কিন্তু সার্ভার মোড সেটিং নির্বিশেষে, সিএমডির মাধ্যমে ফ্লাস্ক সার্ভারটি কীভাবে শুরু করবেন তা এখানে:

flask run

ফ্লাস্ক, যাইহোক, আপনার পোর্ট ডিফল্ট লোকালহোস্ট: 5000 । আপনার এখন বার্তাটি দেখতে হবে H2 একবার আপনার ব্রাউজারের মাধ্যমে এই ঠিকানাটি লোড করলে ট্যাগ করুন।

ডেটা যাচাই করুন এবং কাউচডিবি প্রশ্নগুলি ব্যবহার করে সদৃশগুলি পরীক্ষা করুন

এটিকে আরও মানসম্মত করার জন্য, আপনি ইনপুটগুলি যাচাই করতে এবং আপনার ডাটাবেসে সদৃশতা রোধ করতে প্রশ্নগুলি ব্যবহার করতে পারেন। আপনি এসকিউএল ডেটাবেসের সাথে কীভাবে এটি করেন তার থেকে কাউচডিবি কিছুটা আলাদা।

কাউচডিবি ডাটাবেস থেকে ডেটা জিজ্ঞাসা করতে যাকে 'জাভাস্ক্রিপ্ট ভিউ' বলে তা ব্যবহার করে। ভাগ্যক্রমে, এটি তুলনামূলকভাবে সহজ।

আপনি আরও অগ্রগতি করার আগে, এখানে একটি মৌলিক কাউচডিবি ক্যোয়ারী ভিউ কেমন দেখায়:

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':'justmail@gmail.com',
'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 '

Your data is now in the database

'

উপরের কোডটি ব্যবহার করে ব্যবহারকারী ভিউ ফাংশন দ্বারা প্রাপ্ত ডেটা জিজ্ঞাসা করার জন্য ক্লাস। ক্যোয়ারী সেটের মধ্যে প্যারামিটারগুলিতে গভীর মনোযোগ দিন ( 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 '

Registered successfully

'
else:
return '

Username or email exists

'

আপনার ব্রাউজার রিফ্রেশ করলে অন্য প্রতিবার যখন আপনি একটি ব্যবহারকারীর নাম বা একটি ইমেইল ইনপুট করার চেষ্টা করেন যা ইতিমধ্যে ডাটাবেসে রয়েছে। এবং যদি আপনি একটি নতুন প্রবেশ করছেন, এটি কার্যকরভাবে আপনার ডেটা সঞ্চালন করে যদি অবস্থা

সম্পর্কিত: স্টেটমেন্ট থাকলে পাইথন কিভাবে ব্যবহার করবেন

এটাই! আপনি শুধু ফ্লাস্ক-কাউচডিবি ব্যবহার করে আপনার প্রথম NoSQL ডাটাবেস তৈরি করেছেন।

যদিও CouchDB- এ ডেটাবেস তৈরি করা এবং জিজ্ঞাসা করা হচ্ছে আমরা এখানে যে উদাহরণগুলি তুলে ধরেছি তার চারপাশে ঘুরে, আপনি ফ্লাস্কের কার্যকারিতা আরও সন্ধান করতে পারেন। উদাহরণস্বরূপ, আপনি ইনপুট ক্ষেত্রগুলি ব্যবহার করে স্পিন করতে পারেন wtforms এবং ফ্লাস্কের বার্তা ব্যবহার করে সদৃশ পতাকা ফ্ল্যাশ

আপনি এমনকি জাভাস্ক্রিপ্ট এর jQuery- এ আপনার ক্যোয়ারী পাঠাতে পারেন ইনপুট যাচাই করতে এবং অসম্পূর্ণভাবে সদৃশ চেক করতে।

কাউচডিবি কি এসকিউএল ডেটাবেসের চেয়ে ভাল?

ফ্লাস্ক বা অন্য কোন প্রোগ্রামিং প্রযুক্তির সাথে CouchDB বা অন্য কোন NoSQL ডাটাবেস ব্যবহার করা আপনার পছন্দের উপর নির্ভর করে। কিন্তু কাঠামোহীন ডেটা এবং কাঁচা মিডিয়া নিয়ে কাজ করার সময় এটি কাজে আসে।

এটি বলেছিল, আপনি সিদ্ধান্ত নেওয়ার আগে, আপনি NoSQL এবং SQL ডেটাবেসের মধ্যে পার্থক্যগুলি দেখতে চাইতে পারেন যাতে আপনার প্রকল্পের জন্য কোনটি উপযুক্ত তা নির্ধারণ করতে আপনাকে সাহায্য করতে পারে।

শেয়ার করুন শেয়ার করুন টুইট ইমেইল SQL বনাম NoSQL: আপনার পরবর্তী প্রকল্পের জন্য সেরা ডাটাবেস কি?

একটি ডাটাবেস টাইপ নির্বাচন করা কঠিন হতে পারে। আপনি এসকিউএল বা NoSQL নির্বাচন করা উচিত?

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • তথ্যশালা
  • প্রোগ্রামিং
  • কোডিং টিউটোরিয়াল
লেখক সম্পর্কে ইডিসু ওমিসোলা(94 নিবন্ধ প্রকাশিত)

আইডোউ স্মার্ট প্রযুক্তি এবং উত্পাদনশীলতা সম্পর্কে উত্সাহী। তার অবসর সময়ে, তিনি বিরক্তিকর যখন কোডিং এবং দাবা বোর্ডে স্যুইচ করে ঘুরে বেড়ান, তবে তিনি একবারে রুটিন থেকে বিরত থাকতে পছন্দ করেন। মানুষকে আধুনিক প্রযুক্তির পথ দেখানোর জন্য তার আবেগ তাকে আরও লেখার জন্য অনুপ্রাণিত করে।

Idowu Omisola থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন