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-র মাধ্যমে ডেটা যোগ, আপডেট, মুছতে এবং অনুসন্ধান করতে পারবেন।
Read more