CherryPy দিয়ে HTML ফর্ম তৈরি করা এবং তা সাবমিট করা একটি সাধারণ ওয়েব ডেভেলপমেন্ট প্রক্রিয়া। এই প্রক্রিয়ায়, আমরা HTML ফর্ম তৈরি করব এবং ফর্মটি সাবমিট হওয়ার পর চেরিপাইয়ের মাধ্যমে ডেটা গ্রহণ ও প্রক্রিয়া করব। CherryPy তে HTML ফর্ম ব্যবহারের মাধ্যমে ব্যবহারকারীর ইনপুট নেওয়া, ভ্যালিডেশন করা এবং রেসপন্স পাঠানো সহজ।
HTML ফর্ম তৈরি করা এবং সাবমিট করা
এই উদাহরণে, আমরা একটি সহজ HTML ফর্ম তৈরি করব যেখানে ব্যবহারকারী তার নাম ইনপুট দেবে এবং তারপর ফর্মটি সাবমিট করলে CherryPy তা গ্রহণ করে প্রদর্শন করবে।
১. CherryPy কোড
প্রথমে CherryPy অ্যাপ তৈরি করা হবে, যেখানে HTML ফর্মটি রেন্ডার করা হবে এবং সাবমিট হওয়ার পর ডেটা প্রসেস করা হবে।
উদাহরণ: CherryPy অ্যাপ্লিকেশন
import cherrypy
class FormApp:
@cherrypy.expose
def index(self):
return '''
<html>
<body>
<h2>ব্যবহারকারীর নাম প্রদান করুন</h2>
<form method="POST" action="/submit">
নাম: <input type="text" name="username" />
<input type="submit" value="সাবমিট করুন" />
</form>
</body>
</html>
'''
@cherrypy.expose
def submit(self, username):
# ফর্ম ডেটা প্রসেস করা হচ্ছে
return f'আপনার দেওয়া নাম: {username}'
if __name__ == '__main__':
cherrypy.quickstart(FormApp())
কোড ব্যাখ্যা:
indexমেথড:- এটি রুট
/পাথে উপস্থিত। এখানে HTML ফর্ম রেন্ডার করা হয়েছে। ফর্মটিPOSTমেথড ব্যবহার করে/submitপাথে ডেটা পাঠায়।
- এটি রুট
submitমেথড:- এই মেথডটি
/submitপাথে ফর্ম ডেটা গ্রহণ করে।usernameপ্যারামিটারটিPOSTরিকোয়েস্টের মাধ্যমে আসে এবং এটি সরাসরি ব্যবহারকারীকে দেখানো হয়।
- এই মেথডটি
- HTML ফর্ম:
- ফর্মে একটি ইনপুট ফিল্ড (text field) এবং একটি সাবমিট বাটন রয়েছে।
- ফর্মের
actionঅ্যাট্রিবিউটে/submitপাথ উল্লেখ করা হয়েছে, যা ফর্ম সাবমিট হলে ডেটা গ্রহণ করবে।
২. অ্যাপ্লিকেশন চালানো
এখন, এই কোডটি একটি ফাইলে যেমন app.py নাম দিয়ে সেভ করুন। তারপর টার্মিনালে গিয়ে কোডটি রান করুন:
python app.py
এরপর ব্রাউজারে যান এবং http://127.0.0.1:8080 এ অ্যাক্সেস করুন।
৩. ব্রাউজারে ফর্ম ব্যবহার করা
এখন ব্রাউজারে আপনি একটি ফর্ম দেখতে পাবেন। ফর্মে একটি নাম লিখে "সাবমিট করুন" বাটনে ক্লিক করলে আপনি নিচের মত একটি ফলাফল দেখতে পাবেন:
আপনার দেওয়া নাম: [আপনার নাম]
৪. ফর্ম ভ্যালিডেশন (এছাড়াও করা যেতে পারে)
CherryPy তে ফর্ম ভ্যালিডেশনও করা সম্ভব। উদাহরণস্বরূপ, ব্যবহারকারীর নাম শূন্য না থাকলে তবেই ফর্ম সাবমিট হবে।
উদাহরণ: ফর্ম ভ্যালিডেশন
import cherrypy
class FormApp:
@cherrypy.expose
def index(self):
return '''
<html>
<body>
<h2>ব্যবহারকারীর নাম প্রদান করুন</h2>
<form method="POST" action="/submit">
নাম: <input type="text" name="username" />
<input type="submit" value="সাবমিট করুন" />
</form>
</body>
</html>
'''
@cherrypy.expose
def submit(self, username):
# ফর্ম ভ্যালিডেশন
if not username:
return "নাম ফাঁকা রাখা যাবে না!"
return f'আপনার দেওয়া নাম: {username}'
if __name__ == '__main__':
cherrypy.quickstart(FormApp())
এতে, যদি ব্যবহারকারী নাম না লিখে ফর্ম সাবমিট করেন, তবে একটি ত্রুটি বার্তা "নাম ফাঁকা রাখা যাবে না!" প্রদর্শিত হবে।
CherryPy ব্যবহার করে HTML ফর্ম তৈরি এবং ডেটা সাবমিট করা খুবই সহজ। আপনি @cherrypy.expose ডেকোরেটর ব্যবহার করে ফর্ম পেজ তৈরি করতে পারেন এবং POST রিকোয়েস্টের মাধ্যমে ডেটা প্রক্রিয়া করতে পারেন। CherryPy তে ফর্ম ভ্যালিডেশন, ডেটা প্রসেসিং এবং রেসপন্স পাঠানো খুবই সহজ।
Read more