CherryPy একটি শক্তিশালী ওয়েব ফ্রেমওয়ার্ক যা ওয়েব অ্যাপ্লিকেশনগুলিতে Ajax রিকোয়েস্ট এবং JSON ডেটা হ্যান্ডলিং সহজ করে। Ajax এবং JSON ব্যবহারকারীদের ডাইনামিক এবং ইন্টারঅ্যাকটিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে, যেখানে পেজ রিফ্রেশ ছাড়াই সার্ভার থেকে ডেটা লোড এবং ডিসপ্লে করা যায়। CherryPy তে Ajax রিকোয়েস্ট হ্যান্ডলিং এবং JSON রেসপন্স প্রদান করা খুবই সহজ।
Ajax Response এবং JSON Data Handling: CherryPy তে কিভাবে কাজ করে?
Ajax রিকোয়েস্ট সাধারণত JavaScript বা jQuery দিয়ে সার্ভারে পাঠানো হয় এবং সার্ভার JSON ফরম্যাটে ডেটা রিটার্ন করে। CherryPy JSON ডেটা রিটার্ন করার জন্য বিল্ট-ইন tools.json_out() টুল ব্যবহার করতে পারে, যা ডেটাকে JSON ফরম্যাটে রূপান্তরিত করে।
CherryPy তে Ajax Request হ্যান্ডলিং
Ajax রিকোয়েস্ট হ্যান্ডলিং এর জন্য CherryPy ক্লায়েন্ট থেকে আসা রিকোয়েস্টকে প্রক্রিয়াজাত করে এবং JSON রেসপন্স পাঠায়। প্রথমে, HTML ফর্ম বা AJAX রিকোয়েস্ট তৈরি করতে হবে, তারপর CherryPy তে সঠিক রেসপন্স ফরম্যাটে ডেটা পাঠানো হবে।
উদাহরণ: Ajax Request এবং JSON Response
HTML ফাইল (index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CherryPy Ajax Example</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h1>Ajax Request Example</h1>
<button id="getData">ডেটা আনুন</button>
<div id="result"></div>
<script>
$(document).ready(function(){
$("#getData").click(function(){
$.ajax({
url: "/get_data", // CherryPy রুট
method: "GET",
success: function(response) {
// রেসপন্স হিসেবে JSON ডেটা পাওয়া যাবে
$("#result").html("API Response: " + response.message);
},
error: function(xhr, status, error) {
$("#result").html("Error: " + error);
}
});
});
});
</script>
</body>
</html>
CherryPy অ্যাপ (app.py):
import cherrypy
import json
class MyApp:
@cherrypy.expose
def index(self):
with open("index.html", "r") as f:
return f.read()
@cherrypy.expose
@cherrypy.tools.json_out() # JSON রেসপন্স হিসেবে আউটপুট প্রদান
def get_data(self):
data = {"message": "CherryPy থেকে Ajax রেসপন্স সফলভাবে এসেছে!"}
return data
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
কোড ব্যাখ্যা:
- HTML ফর্ম: একটি বাটন ব্যবহার করা হয়েছে, যখন এটি ক্লিক করা হবে তখন Ajax রিকোয়েস্ট সার্ভারে পাঠানো হবে।
- jQuery Ajax:
$.ajax()ব্যবহার করে একটি GET রিকোয়েস্ট পাঠানো হয়েছে এবং সার্ভার থেকে JSON ডেটা রিটার্ন করা হবে। - CherryPy: CherryPy তে
/get_dataরুটে একটি JSON রেসপন্স তৈরি করা হয়েছে যা Ajax রিকোয়েস্টের জন্য পাঠানো হবে।
JSON Data Handling
CherryPy তে JSON ডেটা হ্যান্ডলিং খুবই সহজ। CherryPy বিল্ট-ইন tools.json_out() টুল ব্যবহার করে ডেটা JSON ফরম্যাটে রিটার্ন করতে পারে।
উদাহরণ: POST Request এর মাধ্যমে JSON Data পাঠানো
এই উদাহরণে, আমরা একটি POST রিকোয়েস্টের মাধ্যমে JSON ডেটা গ্রহণ করব এবং সেই ডেটা প্রসেস করব।
HTML ফর্ম (index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CherryPy JSON POST Example</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h1>POST JSON Example</h1>
<button id="sendData">JSON পাঠান</button>
<div id="response"></div>
<script>
$(document).ready(function(){
$("#sendData").click(function(){
var jsonData = {
name: "Alice",
age: 25
};
$.ajax({
url: "/send_data", // CherryPy রুট
method: "POST",
contentType: "application/json",
data: JSON.stringify(jsonData),
success: function(response) {
$("#response").html("API Response: " + response.status);
},
error: function(xhr, status, error) {
$("#response").html("Error: " + error);
}
});
});
});
</script>
</body>
</html>
CherryPy অ্যাপ (app.py):
import cherrypy
import json
class MyApp:
@cherrypy.expose
def index(self):
with open("index.html", "r") as f:
return f.read()
@cherrypy.expose
@cherrypy.tools.json_in() # JSON ইনপুট গ্রহণ
@cherrypy.tools.json_out() # JSON আউটপুট প্রদান
def send_data(self):
input_data = cherrypy.request.json # JSON ইনপুট ডেটা গ্রহণ
name = input_data.get("name", "Unknown")
age = input_data.get("age", "Unknown")
response = {"status": f"Received: {name}, Age: {age}"}
return response
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
কোড ব্যাখ্যা:
- HTML ফর্ম: একটি বাটন ব্যবহার করা হয়েছে যেটি ক্লিক করলে একটি JSON অবজেক্ট POST রিকোয়েস্টের মাধ্যমে সার্ভারে পাঠানো হয়।
- jQuery Ajax:
$.ajax()ব্যবহার করে POST রিকোয়েস্ট পাঠানো হয়, যেখানেcontentTypeএবংdataপ্যারামিটার দিয়ে JSON ডেটা পাঠানো হয়। - CherryPy: CherryPy তে
tools.json_in()দিয়ে JSON ডেটা গ্রহণ এবংtools.json_out()দিয়ে JSON রেসপন্স পাঠানো হয়।
CherryPy তে JSON রেসপন্স কাস্টমাইজেশন
CherryPy তে JSON রেসপন্স কাস্টমাইজ করতে, আপনি tools.json_out() এর মাধ্যমে কিছু অতিরিক্ত কনফিগারেশন করতে পারেন যেমন:
- JSON Pretty Print: ডেটা সুন্দরভাবে প্রিন্ট করতে
json.dumps()ব্যবহার করা যেতে পারে।
@cherrypy.expose
@cherrypy.tools.json_out()
def get_data(self):
data = {"message": "CherryPy থেকে Ajax রেসপন্স"}
return json.dumps(data, indent=4) # Pretty print JSON
CherryPy তে Ajax Response এবং JSON Data Handling খুবই সহজ এবং কার্যকর। Ajax ব্যবহারকারীদের পেজ রিফ্রেশ ছাড়াই সার্ভারের সাথে যোগাযোগ করতে সাহায্য করে, এবং CherryPy JSON রেসপন্স প্রক্রিয়াটি খুবই সহজ। CherryPy তে JSON ডেটা গ্রহণ ও পাঠানো, Ajax রিকোয়েস্ট হ্যান্ডলিং খুব দ্রুত এবং কার্যকরীভাবে করা যায়।
Read more