TinyDB এবং Flask একসাথে ব্যবহার করলে আপনি একটি লাইটওয়েট, সহজ এবং দ্রুত ডেভেলপমেন্ট পরিবেশ তৈরি করতে পারেন। Flask একটি মিনি-মাইক্রো ফ্রেমওয়ার্ক, যা ছোট এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরির জন্য আদর্শ, এবং TinyDB একটি নো-এসকিউএল ডাটাবেস, যা সহজ ডেটাবেস ম্যানেজমেন্টের জন্য উপযোগী।
এখানে TinyDB এবং Flask একত্রে ব্যবহারের কিছু মৌলিক কৌশল এবং উদাহরণ দেখানো হবে, যা আপনাকে একটি সাধারণ Flask API তৈরি করতে সাহায্য করবে যা TinyDB ব্যবহার করে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করতে পারে।
১. Flask এবং TinyDB সেটআপ
প্রথমে আপনাকে Flask এবং TinyDB ইনস্টল করতে হবে। এটি করতে আপনি নিচের কমান্ডগুলো ব্যবহার করতে পারেন:
pip install flask tinydb
২. Flask অ্যাপ্লিকেশন তৈরি করা
এখন একটি সহজ Flask অ্যাপ তৈরি করি যা TinyDB ডাটাবেস ব্যবহার করে।
Example: Basic Flask API with TinyDB
from flask import Flask, request, jsonify
from tinydb import TinyDB, Query
# Initialize the Flask app
app = Flask(__name__)
# Initialize TinyDB
db = TinyDB('db.json')
# Define a query object
User = Query()
# Route to create a new user
@app.route('/user', methods=['POST'])
def create_user():
data = request.get_json() # Get data from the request
name = data.get('name')
age = data.get('age')
city = data.get('city')
if name and age and city:
# Insert the new user into the database
db.insert({'name': name, 'age': age, 'city': city})
return jsonify({'message': 'User created successfully'}), 201
return jsonify({'message': 'Invalid input'}), 400
# Route to get a user by name
@app.route('/user/<string:name>', methods=['GET'])
def get_user(name):
user = db.search(User.name == name)
if user:
return jsonify(user[0]), 200
return jsonify({'message': 'User not found'}), 404
# Route to update a user's information
@app.route('/user/<string:name>', methods=['PUT'])
def update_user(name):
data = request.get_json()
user = db.search(User.name == name)
if user:
db.update({'age': data.get('age', user[0]['age']),
'city': data.get('city', user[0]['city'])}, User.name == name)
return jsonify({'message': 'User updated successfully'}), 200
return jsonify({'message': 'User not found'}), 404
# Route to delete a user
@app.route('/user/<string:name>', methods=['DELETE'])
def delete_user(name):
user = db.search(User.name == name)
if user:
db.remove(User.name == name)
return jsonify({'message': 'User deleted successfully'}), 200
return jsonify({'message': 'User not found'}), 404
if __name__ == '__main__':
app.run(debug=True)
৩. Flask API Routes ব্যাখ্যা
- POST /user: এই রুট ব্যবহারকারী ডেটা গ্রহণ করে এবং TinyDB ডাটাবেসে একটি নতুন ব্যবহারকারী তৈরি করে।
- GET /user/: এই রুটটি ব্যবহারকারীর নাম অনুসারে ডেটাবেস থেকে ব্যবহারকারী অনুসন্ধান করে এবং ডেটা রিটার্ন করে।
- PUT /user/: এই রুটটি ব্যবহারকারী তথ্য আপডেট করার জন্য ব্যবহৃত হয়। নাম অনুসারে ব্যবহারকারী খোঁজা হয় এবং প্রাপ্ত তথ্য অনুযায়ী আপডেট করা হয়।
- DELETE /user/: এই রুটটি ব্যবহারকারী ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়।
৪. Flask এবং TinyDB দিয়ে ব্যবহারকারী অ্যাপ্লিকেশন চালানো
এখন আপনি Flask অ্যাপ্লিকেশনটি চালাতে পারেন:
python app.py
এই কমান্ডটি চালানোর পরে, Flask অ্যাপ্লিকেশনটি লঞ্চ হবে এবং আপনি API রুটগুলির মাধ্যমে HTTP রিকোয়েস্ট পাঠাতে পারবেন।
API Example Requests:
POST /user (Create a new user):
curl -X POST -H "Content-Type: application/json" -d '{"name": "Rahim", "age": 30, "city": "Dhaka"}' http://127.0.0.1:5000/userGET /user/Rahim (Get a user by name):
curl http://127.0.0.1:5000/user/RahimPUT /user/Rahim (Update a user):
curl -X PUT -H "Content-Type: application/json" -d '{"age": 31, "city": "Chittagong"}' http://127.0.0.1:5000/user/RahimDELETE /user/Rahim (Delete a user):
curl -X DELETE http://127.0.0.1:5000/user/Rahim
৫. TinyDB এবং Flask এর মধ্যে কাস্টম স্টোরেজ ব্যবহার
যেহেতু TinyDB মূলত JSON ফাইল ব্যবহার করে ডেটা সংরক্ষণ করে, যদি আপনি অন্য ধরনের স্টোরেজ ব্যবহার করতে চান (যেমন SQLite বা অন্য ফাইল ফরম্যাট), আপনি Custom Storage তৈরি করতে পারেন।
এটির মাধ্যমে, আপনি Flask এ কাস্টম স্টোরেজ মেকানিজম ব্যবহার করতে পারবেন, যা আপনি নিজের প্রয়োজন অনুযায়ী কনফিগার করতে পারবেন।
Example: Custom Storage Class
from tinydb import Storage
import os
class CustomStorage(Storage):
def __init__(self, path):
self.path = path
def read(self):
# Custom read logic here (e.g., from SQLite, etc.)
if os.path.exists(self.path):
with open(self.path, 'r') as f:
return f.read()
return []
def write(self, data):
# Custom write logic here
with open(self.path, 'w') as f:
f.write(data)
# Example usage in Flask app
db = TinyDB('db.json', storage=CustomStorage)
সারাংশ
- TinyDB এবং Flask এর ইন্টিগ্রেশন একটি লাইটওয়েট এবং দ্রুত ডেভেলপমেন্ট পরিবেশ তৈরি করে।
- Flask API তৈরি করা এবং TinyDB ব্যবহার করে ডেটা CRUD (Create, Read, Update, Delete) অপারেশন করা সহজ।
- আপনি Custom Storage ব্যবহার করে TinyDB-এর স্টোরেজ মেকানিজম পরিবর্তন করতে পারেন।
- Flask এর API রাউটগুলি TinyDB ডাটাবেসের সাথে সংযুক্ত থাকে এবং সহজেই ডেটা পরিচালনা করতে পারে।
এভাবে TinyDB এবং Flask একসাথে ব্যবহার করে আপনি ছোট, স্কেলেবল এবং কার্যকর অ্যাপ্লিকেশন তৈরি করতে পারেন।
Flask একটি জনপ্রিয় এবং লাইটওয়েট ওয়েব ফ্রেমওয়ার্ক, যা সাধারণত ছোট থেকে মাঝারি আকারের ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। আর TinyDB হলো একটি নো-এসকিউএল ডাটাবেস, যা JSON ফাইল ব্যবহার করে ডেটা সংরক্ষণ করে। Flask অ্যাপ্লিকেশনের সাথে TinyDB সংযোগ করার মাধ্যমে, আপনি দ্রুত এবং সহজভাবে ডেটাবেস পরিচালনা করতে পারেন।
এই গাইডে, আমরা দেখবো Flask অ্যাপ্লিকেশন তৈরি করে TinyDB কিভাবে সংযুক্ত করতে হয় এবং এর মাধ্যমে ডেটা ম্যানেজমেন্ট কিভাবে করা যায়।
১. প্রয়োজনীয় প্যাকেজ ইনস্টল করা
প্রথমে, Flask এবং TinyDB ইনস্টল করতে হবে। আপনি পিপ ব্যবহার করে এগুলি ইনস্টল করতে পারেন:
pip install flask tinydb
২. Flask অ্যাপ্লিকেশন তৈরি করা
এখন একটি সাধারন Flask অ্যাপ্লিকেশন তৈরি করে TinyDB সংযুক্ত করবো।
from flask import Flask, jsonify, request
from tinydb import TinyDB, Query
app = Flask(__name__)
# TinyDB ডাটাবেস তৈরি করা
db = TinyDB('db.json')
users_table = db.table('users')
@app.route('/')
def index():
return "Flask ও TinyDB ইন্টিগ্রেশন ডেমো"
# ইউজার ইনসার্ট করার রুট
@app.route('/add_user', methods=['POST'])
def add_user():
data = request.get_json()
# ডেটা ভ্যালিডেশন (যদি চাই)
if 'name' not in data or 'age' not in data:
return jsonify({"error": "নাম এবং বয়স প্রয়োজন"}), 400
users_table.insert({'name': data['name'], 'age': data['age']})
return jsonify({"message": "ইউজার সফলভাবে যোগ করা হয়েছে!"}), 201
# ইউজার পড়ার রুট
@app.route('/get_users', methods=['GET'])
def get_users():
users = users_table.all()
return jsonify(users)
# ইউজার আপডেট করার রুট
@app.route('/update_user/<string:name>', methods=['PUT'])
def update_user(name):
User = Query()
data = request.get_json()
# ইউজার আপডেট করা
result = users_table.update({'age': data['age']}, User.name == name)
if result:
return jsonify({"message": f"{name} এর তথ্য আপডেট করা হয়েছে!"}), 200
else:
return jsonify({"error": f"{name} এর তথ্য পাওয়া যায়নি!"}), 404
# ইউজার ডিলিট করার রুট
@app.route('/delete_user/<string:name>', methods=['DELETE'])
def delete_user(name):
User = Query()
result = users_table.remove(User.name == name)
if result:
return jsonify({"message": f"{name} এর তথ্য মুছে ফেলা হয়েছে!"}), 200
else:
return jsonify({"error": f"{name} এর তথ্য পাওয়া যায়নি!"}), 404
if __name__ == '__main__':
app.run(debug=True)
৩. Flask রুটের মাধ্যমে TinyDB ব্যবহার করা
এখন আপনি Flask অ্যাপ্লিকেশনে TinyDB ইন্টিগ্রেট করেছেন, যেখানে বিভিন্ন রুটের মাধ্যমে ডেটা পরিচালনা করা যায়:
/add_userরুট: একটি POST রিকুয়েস্ট গ্রহণ করে ইউজার ডেটা (নাম, বয়স) TinyDB তে সংরক্ষণ করে।/get_usersরুট: একটি GET রিকুয়েস্ট দিয়ে ডাটাবেসে সংরক্ষিত সমস্ত ইউজারের তথ্য রিটার্ন করে।/update_user/<name>রুট: একটি PUT রিকুয়েস্ট দিয়ে ইউজারের বয়স আপডেট করে।/delete_user/<name>রুট: একটি DELETE রিকুয়েস্ট দিয়ে নির্দিষ্ট ইউজারের তথ্য মুছে ফেলে।
৪. Flask অ্যাপ্লিকেশন চালানো
এখন আপনি Flask অ্যাপ্লিকেশনটি চালু করতে পারেন।
python app.py
অ্যাপ্লিকেশন চালু হলে, আপনি http://127.0.0.1:5000/ এ গিয়ে আপনার API রুটগুলোর পরীক্ষা করতে পারবেন।
৫. API এর মাধ্যমে TinyDB তে ডেটা ম্যানেজমেন্ট
ইউজার যোগ করা (POST):
curl -X POST -H "Content-Type: application/json" -d '{"name": "Rahim", "age": 30}' http://127.0.0.1:5000/add_user
সমস্ত ইউজার দেখানো (GET):
curl http://127.0.0.1:5000/get_users
ইউজার আপডেট করা (PUT):
curl -X PUT -H "Content-Type: application/json" -d '{"age": 35}' http://127.0.0.1:5000/update_user/Rahim
ইউজার ডিলিট করা (DELETE):
curl -X DELETE http://127.0.0.1:5000/delete_user/Rahim
সারাংশ
Flask ফ্রেমওয়ার্ক এবং TinyDB-এর ইন্টিগ্রেশন সহজ এবং দ্রুত। TinyDB-কে JSON ফাইল ভিত্তিক ডাটাবেস হিসেবে ব্যবহার করে আপনি ছোট বা মাঝারি আকারের অ্যাপ্লিকেশনগুলোতে ডেটা পরিচালনা করতে পারেন। Flask API রুটের মাধ্যমে TinyDB-এর কার্যক্ষমতা সহজে ব্যবহার করা সম্ভব, যা আপনার অ্যাপ্লিকেশনকে কার্যকরী এবং সহজ করে তোলে।
Flask একটি পাইথন ভিত্তিক মাইক্রো-ফ্রেমওয়ার্ক যা খুব সহজে REST API তৈরি করার জন্য ব্যবহৃত হয়। Flask দিয়ে খুব দ্রুত এবং কার্যকরভাবে API তৈরি করা যায়। TinyDB হলো একটি লাইটওয়েট নো-এসকিউএল ডাটাবেস যা JSON ফাইল ব্যবহার করে ডেটা সংরক্ষণ করে। এখানে Flask ব্যবহার করে REST API তৈরি করা হবে এবং TinyDB কে ডেটাবেস হিসেবে ব্যবহৃত হবে।
১. প্রয়োজনীয় লাইব্রেরি ইন্সটল করা
প্রথমে Flask এবং TinyDB ইনস্টল করতে হবে। এটি করতে আপনি pip ব্যবহার করতে পারেন:
pip install flask tinydb
২. Flask REST API তৈরি করা
এখন Flask দিয়ে একটি REST API তৈরি করা হবে যা TinyDB-কে ডাটাবেস হিসেবে ব্যবহার করবে।
API এর জন্য মূল কাঠামো
- GET: ডেটা ফেচ করার জন্য
- POST: নতুন ডেটা যোগ করার জন্য
- PUT: ডেটা আপডেট করার জন্য
- DELETE: ডেটা মুছতে
from flask import Flask, request, jsonify
from tinydb import TinyDB, Query
app = Flask(__name__)
# TinyDB ডাটাবেস তৈরি
db = TinyDB('db.json')
User = Query()
# GET - সকল ব্যবহারকারী দেখানো
@app.route('/users', methods=['GET'])
def get_users():
users = db.all() # সমস্ত ডেটা দেখাবে
return jsonify(users), 200
# GET - নির্দিষ্ট ব্যবহারকারী দেখানো
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = db.get(User.id == user_id)
if user:
return jsonify(user), 200
return jsonify({"message": "User not found"}), 404
# POST - নতুন ব্যবহারকারী যোগ করা
@app.route('/users', methods=['POST'])
def add_user():
data = request.get_json()
name = data.get('name')
age = data.get('age')
if name and age:
user_id = len(db) + 1 # সিম্পল ID জেনারেশন
user = {'id': user_id, 'name': name, 'age': age}
db.insert(user)
return jsonify(user), 201
return jsonify({"message": "Invalid data"}), 400
# PUT - ব্যবহারকারী আপডেট করা
@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
data = request.get_json()
name = data.get('name')
age = data.get('age')
user = db.get(User.id == user_id)
if user:
if name:
user['name'] = name
if age:
user['age'] = age
db.update(user, User.id == user_id)
return jsonify(user), 200
return jsonify({"message": "User not found"}), 404
# DELETE - ব্যবহারকারী মুছে ফেলা
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
user = db.get(User.id == user_id)
if user:
db.remove(User.id == user_id)
return jsonify({"message": "User deleted"}), 200
return jsonify({"message": "User not found"}), 404
if __name__ == '__main__':
app.run(debug=True)
Flask API-র ব্যাখ্যা:
- GET /users: এই API কলটি সমস্ত ব্যবহারকারীর তথ্য ফিরিয়ে দেবে।
db.all()মেথড দ্বারা সমস্ত ডেটা উদ্ধার করা হয় এবং JSON ফরম্যাটে রিটার্ন করা হয়। - GET /users/<user_id>: এই API কলটি একটি নির্দিষ্ট ব্যবহারকারী প্রদর্শন করবে, যার জন্য
user_idপ্যারামিটার দেওয়া হবে।db.get()মেথড দ্বারা এটি অনুসন্ধান করা হয়। - POST /users: এই API কলটি একটি নতুন ব্যবহারকারী যোগ করার জন্য ব্যবহৃত হয়। ইউজারের নাম এবং বয়স
POSTডেটার মাধ্যমে নেওয়া হয় এবং নতুন ব্যবহারকারী ডাটাবেসে যোগ করা হয়। - PUT /users/<user_id>: এই API কলটি একটি নির্দিষ্ট ব্যবহারকারী আপডেট করতে ব্যবহৃত হয়।
user_idঅনুযায়ী ব্যবহারকারী আপডেট করা হয়। - DELETE /users/<user_id>: এই API কলটি একটি নির্দিষ্ট ব্যবহারকারী ডিলিট করবে।
৩. API টেস্ট করা
১. GET /users
এটি সমস্ত ব্যবহারকারীর তথ্য দেখাবে।
curl http://127.0.0.1:5000/users
২. GET /users/<user_id>
এটি একটি নির্দিষ্ট ব্যবহারকারী তথ্য দেখাবে, উদাহরণস্বরূপ:
curl http://127.0.0.1:5000/users/1
৩. POST /users
নতুন ব্যবহারকারী তৈরি করতে:
curl -X POST -H "Content-Type: application/json" -d '{"name": "Aziz", "age": 28}' http://127.0.0.1:5000/users
৪. PUT /users/<user_id>
ব্যবহারকারীর তথ্য আপডেট করতে:
curl -X PUT -H "Content-Type: application/json" -d '{"name": "Azizur", "age": 30}' http://127.0.0.1:5000/users/1
৫. DELETE /users/<user_id>
ব্যবহারকারী মুছে ফেলতে:
curl -X DELETE http://127.0.0.1:5000/users/1
সারাংশ
এই কোডে Flask এবং TinyDB ব্যবহার করে একটি REST API তৈরি করা হয়েছে যা GET, POST, PUT, এবং DELETE HTTP মেথড সমর্থন করে। TinyDB JSON ফাইল ব্যবহার করে ডেটা সংরক্ষণ করে, এবং Flask API-র মাধ্যমে ডেটা যোগ, আপডেট, মুছতে এবং অনুসন্ধান করতে পারবেন।
TinyDB হল একটি হালকা, NoSQL ডাটাবেস যা পাইথনের জন্য তৈরি করা হয়েছে। এটি ছোট স্কেল অ্যাপ্লিকেশন এবং প্রোটোটাইপ ডেভেলপমেন্টের জন্য আদর্শ। যদি আপনি একটি সিম্পল Web Application তৈরি করতে চান যেখানে বড় ডাটাবেস ব্যবস্থাপনা না প্রয়োজন হয়, TinyDB একটি ভাল বিকল্প হতে পারে।
এখানে আমরা দেখব কিভাবে TinyDB ব্যবহার করে Web Application এর জন্য ডেটা ম্যানেজমেন্ট করা যায়।
১. TinyDB Setup in a Web Application
TinyDB ব্যবহার করার জন্য প্রথমে আপনার অ্যাপ্লিকেশনের ডিরেক্টরিতে TinyDB ইনস্টল করতে হবে।
১.১ TinyDB ইনস্টলেশন
TinyDB ইনস্টল করতে, আপনি pip ব্যবহার করতে পারেন:
pip install tinydb
২. Web Application এর জন্য TinyDB ব্যবহার করা
আমরা একটি সিম্পল Flask Web Application তৈরি করব যেখানে TinyDB ব্যবহার করে ডেটা সংরক্ষণ, আপডেট, এবং অনুসন্ধান করা হবে।
২.১ Flask সেটআপ
Flask Web Framework ব্যবহার করে একটি বেসিক অ্যাপ্লিকেশন তৈরি করতে:
pip install Flask
২.২ Flask অ্যাপ তৈরি করা
এখন, আমরা একটি সিম্পল Flask অ্যাপ তৈরি করব, যেখানে TinyDB ব্যবহার করে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করা হবে।
from flask import Flask, render_template, request, redirect, url_for
from tinydb import TinyDB, Query
# Flask অ্যাপ সেটআপ
app = Flask(__name__)
# TinyDB ডাটাবেস সংযুক্ত করা
db = TinyDB('db.json')
User = Query()
@app.route('/')
def index():
# ডাটাবেস থেকে সব ইউজার দেখানো
users = db.all()
return render_template('index.html', users=users)
@app.route('/add_user', methods=['POST'])
def add_user():
# ফর্ম থেকে ডেটা গ্রহণ করা
name = request.form['name']
age = request.form['age']
# TinyDB তে নতুন ইউজার ইনসার্ট করা
db.insert({'name': name, 'age': age})
return redirect(url_for('index'))
@app.route('/delete_user/<int:id>')
def delete_user(id):
# ইউজার ডিলিট করা
db.remove(doc_ids=[id])
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
এখানে আমরা একটি Flask Web Application তৈরি করেছি যেখানে:
/রুট ইউজারদের তালিকা প্রদর্শন করে।/add_userরুট ব্যবহারকারীর নাম এবং বয়স TinyDB ডাটাবেসে সংরক্ষণ করে।/delete_userরুট ব্যবহারকারীকে ডিলিট করে।
৩. HTML টেমপ্লেট
আমরা একটি সিম্পল HTML ফর্ম ব্যবহার করব, যা ব্যবহারকারীর নাম এবং বয়স নিবে এবং ডেটা TinyDB তে ইনসার্ট করবে।
<!-- templates/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TinyDB Web App</title>
</head>
<body>
<h1>User List</h1>
<ul>
{% for user in users %}
<li>{{ user['name'] }} - {{ user['age'] }}
<a href="{{ url_for('delete_user', id=user.doc_id) }}">Delete</a>
</li>
{% endfor %}
</ul>
<h2>Add User</h2>
<form method="POST" action="{{ url_for('add_user') }}">
<input type="text" name="name" placeholder="Name" required><br>
<input type="number" name="age" placeholder="Age" required><br>
<input type="submit" value="Add User">
</form>
</body>
</html>
এখানে:
usersতালিকা দিয়ে আমরা সব ব্যবহারকারীর নাম এবং বয়স দেখাচ্ছি।- ব্যবহারকারী একটি নতুন ইউজার নাম এবং বয়স ইনপুট ফিল্ডে দেয় এবং তা
add_userরুটে পাঠানো হয়।
৪. TinyDB ব্যবহার করে ডেটা ম্যানেজমেন্ট
TinyDB-তে ডেটা ম্যানেজমেন্ট করার জন্য কিছু সাধারণ কাজ:
৪.১ ডেটা ইনসার্ট করা
আমরা db.insert() ফাংশন ব্যবহার করে ডেটা ইনসার্ট করি।
db.insert({'name': 'Rahim', 'age': 30})
৪.২ ডেটা অনুসন্ধান করা
db.search() ফাংশন ব্যবহার করে ডেটা অনুসন্ধান করা যায়:
users = db.search(User.name == 'Rahim')
৪.৩ ডেটা আপডেট করা
db.update() ফাংশন ব্যবহার করে ডেটা আপডেট করা যায়:
db.update({'age': 35}, User.name == 'Rahim')
৪.৪ ডেটা মুছে ফেলা
db.remove() ফাংশন ব্যবহার করে ডেটা মুছে ফেলা যায়:
db.remove(User.name == 'Rahim')
৫. সারাংশ
- TinyDB একটি হালকা এবং সহজ NoSQL ডাটাবেস যা Web Application এর জন্য ছোট ডেটা ম্যানেজমেন্টে ব্যবহৃত হতে পারে।
- Flask এর সাথে TinyDB ব্যবহার করে আপনি সহজেই ডেটা ম্যানেজমেন্ট করতে পারেন, যেমন ডেটা ইনসার্ট, আপডেট, অনুসন্ধান এবং মুছা।
- TinyDB বড় স্কেল অ্যাপ্লিকেশনগুলোর জন্য উপযুক্ত নয়, তবে ছোট বা প্রোটোটাইপ ডেভেলপমেন্টের জন্য আদর্শ।
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