CherryPy তে File Paths এবং URL Configuration অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলি অ্যাপ্লিকেশন পরিচালনা এবং স্ট্যাটিক ফাইল সার্ভিংয়ের জন্য অত্যাবশ্যক। আপনি CherryPy এর সাহায্যে সহজেই স্ট্যাটিক ফাইল (যেমন CSS, JS, ইমেজ) পরিবেশন করতে পারেন এবং URL কনফিগারেশন ব্যবহার করে বিভিন্ন রুট এবং পাথ ম্যানেজ করতে পারেন।
এখানে File Paths এবং URL Configuration কীভাবে কাজ করে তা বিস্তারিত আলোচনা করা হবে।
CherryPy তে File Paths
CherryPy তে File Paths ব্যবস্থাপনা করতে হলে আপনাকে স্ট্যাটিক ফাইল পরিচালনা করার জন্য কিছু টুল ব্যবহার করতে হয়। সাধারণত tools.staticdir ব্যবহার করে আপনি স্ট্যাটিক ফাইল নির্দিষ্ট পাথ থেকে সার্ভ করতে পারেন।
উদাহরণ: স্ট্যাটিক ফাইল সার্ভিং
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
if __name__ == '__main__':
config = {
'/static': {
'tools.staticdir.on': True, # স্ট্যাটিক ফাইল সার্ভিং চালু করা
'tools.staticdir.dir': './static' # স্ট্যাটিক ফাইলের ডিরেক্টরি
}
}
cherrypy.quickstart(MyApp(), '/', config)
ব্যাখ্যা:
tools.staticdir.on: স্ট্যাটিক ফাইল সার্ভিং চালু করে।tools.staticdir.dir: স্ট্যাটিক ফাইলগুলি কোথায় রাখা হয়েছে তা নির্দেশ করে। এখানে./staticডিরেক্টরিতে রাখা ফাইল সার্ভ হবে।
স্ট্যাটিক ফাইল ব্যবস্থাপনা
আপনি CherryPy তে স্ট্যাটিক ফাইল যেমন CSS, JS, ইমেজ বা অন্যান্য ফাইল সার্ভ করতে পারবেন। এর জন্য আপনাকে স্ট্যাটিক ফাইলগুলো নির্দিষ্ট ডিরেক্টরিতে রাখতে হবে এবং tools.staticdir.dir দ্বারা তাদের পাথ নির্ধারণ করতে হবে।
উদাহরণ: স্ট্যাটিক CSS ফাইল
ধরি, আপনার প্রজেক্ট কাঠামো কিছু এরকম:
project/
│
├── app.py
├── static/
│ ├── css/
│ │ └── styles.css
│ └── images/
│ └── logo.png
এখন আপনি styles.css ফাইলটি CherryPy সার্ভার দিয়ে ব্রাউজারে প্রদর্শন করতে পারবেন।
config ফাইলের কনফিগারেশন:
config = {
'/static': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static' # static ডিরেক্টরি থেকে ফাইল সার্ভ
}
}
cherrypy.quickstart(MyApp(), '/', config)
এটি ব্রাউজারে http://127.0.0.1:8080/static/css/styles.css দিয়ে styles.css ফাইলটি অ্যাক্সেস করতে পারবে।
URL Configuration
CherryPy তে URL কনফিগারেশন সহজে সেট করা যায়। আপনি নির্দিষ্ট URI বা রুট পাথের জন্য কাস্টম কনফিগারেশন তৈরি করতে পারেন।
উদাহরণ: Custom Routes
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
@cherrypy.expose
def about(self):
return "এটি অ্যাবাউট পেজ।"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে:
indexরুটটি/এর জন্য কাজ করবে।aboutরুটটি/aboutএর জন্য কাজ করবে।
উদাহরণ: URL প্যারামিটার সহ
আপনি CherryPy তে URL প্যারামিটারও নিতে পারেন।
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
@cherrypy.expose
def user(self, username):
return f"স্বাগতম, {username}!"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে:
userরুটটি/user/<username>এর জন্য কাজ করবে।- উদাহরণস্বরূপ, http://127.0.0.1:8080/user/JohnDoe এ আপনি "স্বাগতম, JohnDoe!" দেখতে পাবেন।
Custom Routes এবং URL Configuration এর মাধ্যমে Dynamic Routing
CherryPy তে আপনি URL পাথের অংশ হিসেবে ডাইনামিক ডেটা যেমন প্যারামিটার বা ভেরিয়েবল পাস করতে পারেন।
উদাহরণ: Complex URL Routing
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
@cherrypy.expose
def article(self, article_id, category):
return f"এটি {category} ক্যাটাগরির {article_id} আইডির আর্টিকেল।"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে:
articleরুটটি/article/<article_id>/<category>পাথের জন্য কাজ করবে।- উদাহরণস্বরূপ, আপনি http://127.0.0.1:8080/article/123/tech এ গিয়ে "এটি tech ক্যাটাগরির 123 আইডির আর্টিকেল।" দেখতে পারবেন।
Static Files এবং URL Configuration এর কাস্টমাইজেশন
CherryPy তে আপনি স্ট্যাটিক ফাইল সার্ভ করার জন্য আলাদা রুট কনফিগার করতে পারেন, যাতে আপনি ফাইল টাইপ বা পাথ ভেদে বিভিন্ন সেটিংস প্রয়োগ করতে পারেন।
উদাহরণ: স্ট্যাটিক ফাইল সার্ভিং কনফিগারেশন
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
config = {
'/static': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static', # স্ট্যাটিক ফাইলের লোকেশন
'tools.staticdir.content_types': {
'css': 'text/css',
'js': 'application/javascript'
} # স্ট্যাটিক ফাইলের কনটেন্ট টাইপ নির্ধারণ
}
}
cherrypy.quickstart(MyApp(), '/', config)
CherryPy তে File Paths এবং URL Configuration ব্যবস্থাপনা সহজ এবং নমনীয়। আপনি স্ট্যাটিক ফাইল সার্ভ করতে পারেন এবং কাস্টম রাউট এবং ডাইনামিক URL কনফিগারেশন ব্যবহার করে অ্যাপ্লিকেশনটিকে আরও শক্তিশালী ও কার্যকরী করতে পারেন। CherryPy এর এই বৈশিষ্ট্যগুলো আপনাকে আরও উন্নত এবং ব্যবহারকারী বান্ধব ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করবে।
Read more