CherryPy দিয়ে ওয়েব অ্যাপ্লিকেশন তৈরি করার সময়, CSS, JavaScript এবং Images স্ট্যাটিক ফাইল হিসেবে পরিবেশন করা অত্যন্ত গুরুত্বপূর্ণ। স্ট্যাটিক ফাইলগুলির মাধ্যমে আপনি আপনার ওয়েব পেজের ডিজাইন, ইন্টারেক্টিভিটি এবং মিডিয়া উপাদানগুলিকে রিচ করতে পারেন। CherryPy এ স্ট্যাটিক ফাইলগুলিকে সহজভাবে সিস্টেমে সংযুক্ত এবং পরিবেশন করা যায়।
CherryPy তে স্ট্যাটিক ফাইল সংযোগ
CherryPy তে স্ট্যাটিক ফাইল (CSS, JS, images) সার্ভ করার জন্য tools.staticdir টুল ব্যবহার করা হয়। এতে আপনি স্ট্যাটিক ফাইলগুলির জন্য পাথ নির্ধারণ করতে পারেন এবং CherryPy ওই ফাইলগুলো ক্লায়েন্টের কাছে সরবরাহ করবে।
১. স্ট্যাটিক ফাইল পরিবেশন করা
CherryPy তে স্ট্যাটিক ফাইল পরিবেশন করতে tools.staticdir টুল ব্যবহার করা হয়, যা আপনাকে স্ট্যাটিক ফাইলগুলির পাথ এবং কনফিগারেশন সেট করার সুবিধা দেয়।
উদাহরণ: CherryPy তে CSS, JS এবং Images সংযোগ করা
ধরি আপনার অ্যাপ্লিকেশন কাঠামো এমন:
project/
│
├── app.py
├── static/
│ ├── css/
│ │ └── styles.css
│ ├── js/
│ │ └── script.js
│ └── images/
│ └── logo.png
এখন CherryPy তে স্ট্যাটিক ফাইলগুলো পরিবেশন করার জন্য কোড তৈরি করতে হবে।
উদাহরণ কোড:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''
<html>
<head>
<link rel="stylesheet" href="/static/css/styles.css">
<script src="/static/js/script.js"></script>
</head>
<body>
<h1>স্বাগতম CherryPy অ্যাপে!</h1>
<img src="/static/images/logo.png" alt="Logo">
</body>
</html>
'''
# স্ট্যাটিক ফাইল সার্ভিং কনফিগারেশন
config = {
'/static': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static' # স্ট্যাটিক ফাইলের লোকেশন
}
}
if __name__ == '__main__':
cherrypy.quickstart(MyApp(), '/', config)
ব্যাখ্যা:
tools.staticdir.on: এটি স্ট্যাটিক ফাইল সার্ভিং চালু করে।tools.staticdir.dir: এটি স্ট্যাটিক ফাইলগুলির জন্য ডিরেক্টরি নির্ধারণ করে। এখানে./staticডিরেক্টরি ব্যবহার করা হয়েছে।- HTML টেমপ্লেট:
indexমেথডে HTML টেমপ্লেট তৈরি করা হয়েছে এবং CSS, JavaScript, এবং Image ফাইলগুলো যথাক্রমে<link>,<script>, এবং<img>ট্যাগের মাধ্যমে লিংক করা হয়েছে।
২. স্ট্যাটিক ফাইল কনফিগারেশন
CherryPy তে আপনি tools.staticdir টুলের মাধ্যমে একাধিক স্ট্যাটিক ফাইলের পাথ নির্ধারণ করতে পারেন।
উদাহরণ: একাধিক পাথ কনফিগার করা
config = {
'/static/css': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static/css'
},
'/static/js': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static/js'
},
'/static/images': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static/images'
}
}
এতে, CSS, JS এবং Images ফাইলগুলো আলাদা আলাদা সাব-রুট দিয়ে সঠিকভাবে সার্ভ করা হবে:
/static/css: CSS ফাইল/static/js: JS ফাইল/static/images: Images ফাইল
৩. স্ট্যাটিক ফাইলের অ্যাক্সেস কন্ট্রোল
CherryPy তে আপনি স্ট্যাটিক ফাইলের অ্যাক্সেস কন্ট্রোলও পরিচালনা করতে পারেন, যেমন স্ট্যাটিক ফাইলগুলো শুধুমাত্র নির্দিষ্ট ব্যবহারকারীদের জন্য অ্যাক্সেসযোগ্য রাখা।
উদাহরণ: স্ট্যাটিক ফাইলের কন্ট্রোল
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''
<html>
<head>
<link rel="stylesheet" href="/static/css/styles.css">
<script src="/static/js/script.js"></script>
</head>
<body>
<h1>স্বাগতম CherryPy অ্যাপে!</h1>
<img src="/static/images/logo.png" alt="Logo">
</body>
</html>
'''
# কনফিগারেশন
config = {
'/static': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static',
'tools.staticdir.permissions': 'r' # শুধু রিড এক্সেস অনুমোদিত
}
}
if __name__ == '__main__':
cherrypy.quickstart(MyApp(), '/', config)
এখানে:
tools.staticdir.permissions: স্ট্যাটিক ফাইলের জন্য রিড এক্সেস অনুমোদন করা হয়েছে।
৪. স্ট্যাটিক ফাইলের কনটেন্ট টাইপ কনফিগারেশন
CherryPy তে আপনি স্ট্যাটিক ফাইলের কনটেন্ট টাইপ (Content-Type) কনফিগার করতে পারেন, যেমন CSS ফাইলের জন্য text/css এবং JavaScript ফাইলের জন্য application/javascript।
উদাহরণ: কনটেন্ট টাইপ কনফিগারেশন
config = {
'/static/css': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static/css',
'tools.staticdir.content_types': {'css': 'text/css'}
},
'/static/js': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static/js',
'tools.staticdir.content_types': {'js': 'application/javascript'}
}
}
এতে, CherryPy স্ট্যাটিক ফাইলগুলোর সঠিক কনটেন্ট টাইপ সেট করবে এবং ব্রাউজারের জন্য সেগুলো সঠিকভাবে রেন্ডার হবে।
CherryPy তে স্ট্যাটিক ফাইল সংযোগ করা খুবই সহজ এবং নমনীয়। আপনি CSS, JavaScript এবং Images ফাইলগুলো সরাসরি CherryPy সার্ভার দিয়ে পরিবেশন করতে পারেন এবং বিভিন্ন কনফিগারেশন সেট করে তাদের অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন। CherryPy এর tools.staticdir টুল ব্যবহার করে স্ট্যাটিক ফাইলের পাথ এবং কনফিগারেশন সেট করা যায়, যা আপনার ওয়েব অ্যাপ্লিকেশনকে আরও কার্যকরী এবং নিরাপদ করে তোলে।
Read more