Ajax Response এবং JSON Data Handling

Ajax এবং Asynchronous Requests - চেরিপাই (CherryPy) - Web Development

300

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 রিকোয়েস্ট হ্যান্ডলিং খুব দ্রুত এবং কার্যকরীভাবে করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...