Simple HTML Response এবং Templating

Templates এবং Views - চেরিপাই (CherryPy) - Web Development

293

CherryPy একটি লাইটওয়েট ওয়েব ফ্রেমওয়ার্ক, যা দিয়ে আপনি সহজে HTML রেসপন্স দিতে পারেন এবং টেমপ্লেট ব্যবহার করে ডায়নামিক HTML তৈরি করতে পারেন। CherryPy এর সাথে টেমপ্লেট ইঞ্জিন যেমন Jinja2 ব্যবহার করে আপনি ডায়নামিক কনটেন্ট রেন্ডার করতে পারেন। এই টিউটোরিয়ালে আমরা সাধারণ HTML রেসপন্স এবং টেমপ্লেটিং এর মাধ্যমে ডায়নামিক HTML রেন্ডার করার পদ্ধতি দেখব।


Simple HTML Response

CherryPy দিয়ে সরাসরি HTML রেসপন্স দেওয়া খুবই সহজ। আপনি return স্টেটমেন্টে সরাসরি HTML কোড দিয়ে রেসপন্স পাঠাতে পারেন।

উদাহরণ: সরাসরি HTML রেসপন্স

import cherrypy

class MyApp:
    @cherrypy.expose
    def index(self):
        return """<html>
                    <head><title>CherryPy Example</title></head>
                    <body>
                        <h1>স্বাগতম CherryPy অ্যাপে!</h1>
                        <p>এটি একটি সহজ HTML রেসপন্স উদাহরণ।</p>
                    </body>
                  </html>"""

if __name__ == '__main__':
    cherrypy.quickstart(MyApp())

এখানে index মেথড HTML কোড সরাসরি রিটার্ন করছে যা ওয়েব পেজে প্রদর্শিত হবে।

ব্রাউজারে পরীক্ষা:

  • ব্রাউজারে http://127.0.0.1:8080 এ গিয়ে "স্বাগতম CherryPy অ্যাপে!" লেখা দেখতে পাবেন।

Templating with Jinja2

CherryPy এর সাথে Jinja2 টেমপ্লেট ইঞ্জিন ব্যবহার করে ডায়নামিক HTML তৈরি করা যায়। Jinja2 আপনাকে Python ডাটা থেকে HTML টেমপ্লেট তৈরি করতে সাহায্য করে, যা ওয়েব পেজে রেন্ডার করা হয়।

Jinja2 ইনস্টলেশন

প্রথমে Jinja2 ইন্সটল করতে হবে:

pip install jinja2

Jinja2 ব্যবহার করে Templating

CherryPy তে Jinja2 ব্যবহার করতে আপনি jinja2 মডিউল এবং CherryPy এর render ফিচার ব্যবহার করবেন।

উদাহরণ: Jinja2 দিয়ে HTML টেমপ্লেট

  1. প্রজেক্ট কাঠামো:

    project/
    ├── app.py
    ├── templates/
    │   └── index.html
    └── static/
        └── styles.css
    
  2. index.html টেমপ্লেট (templates/index.html):

    <html>
    <head>
        <title>{{ title }}</title>
        <link rel="stylesheet" href="/static/styles.css">
    </head>
    <body>
        <h1>{{ message }}</h1>
        <p>{{ description }}</p>
    </body>
    </html>
    
  3. Python কোড (app.py):

    import cherrypy
    from jinja2 import Environment, FileSystemLoader
    
    class MyApp:
        def __init__(self):
            # Jinja2 টেমপ্লেট লোডার সেট আপ
            self.env = Environment(loader=FileSystemLoader('templates'))
    
        @cherrypy.expose
        def index(self):
            # টেমপ্লেট লোড করা
            template = self.env.get_template('index.html')
            
            # ডাটা দিয়ে টেমপ্লেট রেন্ডার করা
            return template.render(title="CherryPy Jinja2 Example", message="স্বাগতম CherryPy অ্যাপে!", description="এটি Jinja2 দিয়ে রেন্ডার করা একটি ডায়নামিক HTML।")
    
    if __name__ == '__main__':
        cherrypy.quickstart(MyApp())
    

এখানে, Jinja2 টেমপ্লেট ইঞ্জিন ব্যবহার করা হয়েছে:

  • index.html টেমপ্লেট ফাইলটি টাইটেল, মেসেজ, এবং ডেসক্রিপশন দেখানোর জন্য প্রস্তুত।
  • Python কোডে টেমপ্লেট লোড করা হয়েছে এবং ডায়নামিক ডাটা পাঠানো হয়েছে যেমন title, message, এবং description

ব্রাউজারে পরীক্ষা:

  • ব্রাউজারে http://127.0.0.1:8080 এ গিয়ে আপনার ডায়নামিক HTML দেখতে পাবেন।

Static File Serve with Jinja2

CherryPy তে স্ট্যাটিক ফাইল যেমন CSS বা JS ফাইল সরবরাহ করা যেতে পারে। আপনাকে tools.staticdir.on কনফিগারেশন ব্যবহার করতে হবে।

উদাহরণ: Static File Serve

  1. CSS ফাইল (static/styles.css):

    body {
        font-family: Arial, sans-serif;
    }
    h1 {
        color: #007BFF;
    }
    
  2. Python কোড (app.py):

    import cherrypy
    from jinja2 import Environment, FileSystemLoader
    
    class MyApp:
        def __init__(self):
            self.env = Environment(loader=FileSystemLoader('templates'))
    
        @cherrypy.expose
        def index(self):
            template = self.env.get_template('index.html')
            return template.render(title="CherryPy Jinja2 Example", message="স্বাগতম CherryPy অ্যাপে!", description="এটি Jinja2 দিয়ে রেন্ডার করা একটি ডায়নামিক HTML।")
    
    # কনফিগারেশন: স্ট্যাটিক ফাইল পরিবেশন করা
    config = {
        '/static': {
            'tools.staticdir.on': True,
            'tools.staticdir.dir': './static'
        }
    }
    
    if __name__ == '__main__':
        cherrypy.quickstart(MyApp(), '/', config)
    

এখানে স্ট্যাটিক ফাইল সার্ভ করার জন্য tools.staticdir.on কনফিগারেশন ব্যবহার করা হয়েছে। styles.css ফাইলটি /static/styles.css পাথে অ্যাক্সেস করা যাবে।

ব্রাউজারে পরীক্ষা:

  • ব্রাউজারে http://127.0.0.1:8080 এবং http://127.0.0.1:8080/static/styles.css গিয়ে স্টাইলিং এবং টেমপ্লেটের ডায়নামিক কনটেন্ট দেখতে পারবেন।

CherryPy দিয়ে HTML রেসপন্স এবং Jinja2 টেমপ্লেট ব্যবহারের মাধ্যমে ডায়নামিক ওয়েব পেজ তৈরি করা সহজ। Jinja2 টেমপ্লেট ইঞ্জিন আপনাকে Python ডাটা থেকে HTML তৈরি করতে সাহায্য করে এবং CherryPy এর স্ট্যাটিক ফাইল সার্ভিং এর মাধ্যমে আপনি স্টাইলিং, স্ক্রিপ্টিং এবং অন্যান্য ফাইল পরিবেশন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...