Data Serialization হলো প্রক্রিয়া যার মাধ্যমে ডেটাকে একটি নির্দিষ্ট ফরম্যাটে রূপান্তরিত করা হয় যাতে সেটি একটি ফাইল বা নেটওয়ার্কে সহজে স্থানান্তরিত বা সংরক্ষণ করা যায়। সাধারণত JSON, XML, বা Pickle ফরম্যাটে ডেটা সেরিয়ালাইজ করা হয়। Flask এবং TinyDB ব্যবহার করে ডেটা সেরিয়ালাইজ করা একটি সাধারণ ওয়েব অ্যাপ্লিকেশনে RESTful API তৈরি করার সময় খুবই উপকারী হতে পারে।
এই উদাহরণে আমরা দেখব কিভাবে Flask ওয়েব ফ্রেমওয়ার্ক এবং TinyDB ডাটাবেস ব্যবহার করে ডেটা সেরিয়ালাইজ করা যায়, এবং কিভাবে JSON ফরম্যাটে ডেটা এক্সপোর্ট এবং ইম্পোর্ট করা যায়।
Flask এবং TinyDB এর মাধ্যমে Data Serialization উদাহরণ
১. প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রথমে, Flask এবং TinyDB ইনস্টল করতে হবে। আপনি যদি এগুলো ইনস্টল না করে থাকেন, তবে নিচের কমান্ডটি চালিয়ে নিতে পারেন:
pip install Flask tinydb
২. Flask অ্যাপ্লিকেশন তৈরি করা
এখানে একটি সহজ Flask অ্যাপ্লিকেশন তৈরি করব যেখানে TinyDB ডাটাবেসে ডেটা ইনসার্ট করা হবে এবং সেটি JSON ফরম্যাটে সেরিয়ালাইজ করে ব্যবহারকারীকে রিটার্ন করা হবে।
from flask import Flask, jsonify, request
from tinydb import TinyDB, Query
app = Flask(__name__)
# TinyDB ডাটাবেস তৈরি
db = TinyDB('database.json')
# রুট পাথ তৈরি
@app.route('/')
def index():
return "Welcome to the Flask-TinyDB API!"
# ডেটা ইনসার্ট করার জন্য একটি পাথ
@app.route('/add', methods=['POST'])
def add_data():
data = request.get_json() # JSON ডেটা গ্রহণ
db.insert(data) # TinyDB তে ডেটা ইনসার্ট করা
return jsonify({"message": "Data added successfully!"}), 201
# ডেটা রিটার্ন করার জন্য একটি পাথ
@app.route('/get_data', methods=['GET'])
def get_data():
# TinyDB থেকে সব ডেটা পাওয়া
all_data = db.all()
return jsonify(all_data) # JSON ফরম্যাটে রিটার্ন
if __name__ == '__main__':
app.run(debug=True)
ব্যাখ্যা:
- Flask অ্যাপ্লিকেশন:
- প্রথমে Flask অ্যাপ্লিকেশন তৈরি করা হয় এবং এর মধ্যে দুটি রুট পাথ যুক্ত করা হয়:
/: ওয়েব সার্ভারের হোম পেজ (হেলো পেজ)।/add: এটিPOSTরিকোয়েস্ট গ্রহণ করে এবং TinyDB ডাটাবেসে ডেটা ইনসার্ট করে।/get_data: এটিGETরিকোয়েস্ট গ্রহণ করে এবং TinyDB থেকে সমস্ত ডেটা JSON ফরম্যাটে রিটার্ন করে।
- প্রথমে Flask অ্যাপ্লিকেশন তৈরি করা হয় এবং এর মধ্যে দুটি রুট পাথ যুক্ত করা হয়:
- TinyDB ব্যবহার:
- TinyDB ডাটাবেসটি
database.jsonনামে একটি ফাইলে ডেটা সংরক্ষণ করে। - ডেটা ইনসার্ট করার জন্য
insert()মেথড এবং সব ডেটা রিটার্ন করার জন্যall()মেথড ব্যবহার করা হয়।
- TinyDB ডাটাবেসটি
- Data Serialization:
jsonify()ফাংশন ব্যবহার করা হয় Flask-এর মধ্যে ডেটাকে JSON ফরম্যাটে সেরিয়ালাইজ করতে।request.get_json()ব্যবহার করেPOSTরিকোয়েস্ট থেকে JSON ডেটা নেয়া হয় এবং এটি TinyDB ডাটাবেসে ইনসার্ট করা হয়।
৩. API টেস্ট করা
এখন আমাদের Flask অ্যাপ্লিকেশন চালু হয়ে গেছে। অ্যাপ্লিকেশন চালু করার পর, আপনি POST এবং GET রিকোয়েস্ট পাঠিয়ে ডেটা সেরিয়ালাইজ এবং ডেসেরিয়ালাইজ করতে পারেন।
ডেটা ইনসার্ট করার জন্য POST রিকোয়েস্ট পাঠানো:
আপনি Postman বা cURL ব্যবহার করে
/addরুটে একটিPOSTরিকোয়েস্ট পাঠাতে পারেন, যেখানে JSON ডেটা পাঠানো হবে। উদাহরণস্বরূপ:{ "name": "John Doe", "age": 28, "city": "New York" }cURL কমান্ড:
curl -X POST -H "Content-Type: application/json" -d '{"name": "John Doe", "age": 28, "city": "New York"}' http://127.0.0.1:5000/addযদি সফলভাবে ডেটা ইনসার্ট হয়, তাহলে আপনি একটি সফল বার্তা পাবেন:
{ "message": "Data added successfully!" }ডেটা গ্রহণ করার জন্য GET রিকোয়েস্ট পাঠানো:
/get_dataরুটেGETরিকোয়েস্ট পাঠালে, TinyDB থেকে সব ডেটা JSON ফরম্যাটে রিটার্ন হবে।cURL কমান্ড:
curl http://127.0.0.1:5000/get_dataআউটপুট:
[ { "name": "John Doe", "age": 28, "city": "New York" } ]
সারাংশ
এই উদাহরণে, Flask এবং TinyDB ব্যবহার করে ডেটা সেরিয়ালাইজ এবং ডেসেরিয়ালাইজ করা হয়েছে।
- Flask ওয়েব অ্যাপ্লিকেশনটি JSON ফরম্যাটে ডেটা গ্রহণ এবং প্রদান করতে ব্যবহৃত হয়েছে।
- TinyDB ডাটাবেস ব্যবহার করা হয়েছে ডেটা সংরক্ষণ এবং পুনরুদ্ধারের জন্য।
- JSON ফরম্যাটে ডেটা সেরিয়ালাইজ এবং ডেসেরিয়ালাইজ করার জন্য Flask এর
jsonify()এবংrequest.get_json()ব্যবহার করা হয়েছে।
এটি একটি সাধারণ উদাহরণ, এবং আপনি এই ধারণাগুলি RESTful API তৈরি করার জন্য আরও উন্নতভাবে ব্যবহার করতে পারেন।
Read more