Action ফাংশন এবং তাদের কাজ

Controllers এবং Actions - ওয়েব২পাই (Web2Py) - Web Development

285

Web2Py তে Action ফাংশন হল কন্ট্রোলার ফাইলে নির্দিষ্ট ফাংশন যা ইউজারের রিকোয়েস্ট গ্রহণ করে এবং তার ভিত্তিতে অ্যাপ্লিকেশন লজিক প্রক্রিয়া করে। Web2Py তে প্রতিটি URL রিকোয়েস্টে একটি নির্দিষ্ট অ্যাকশন ফাংশন কল করা হয়। এই অ্যাকশন ফাংশনগুলি ওয়েব অ্যাপ্লিকেশনের কার্যকারিতা বাস্তবায়ন করে এবং কন্ট্রোলার ও ভিউয়ের মধ্যে যোগাযোগ স্থাপন করে।


Web2Py তে Action ফাংশন

Action ফাংশন এর কাজ

  1. ইউজার রিকোয়েস্ট প্রক্রিয়া করা: Action ফাংশন ইউজারের রিকোয়েস্ট গ্রহণ করে এবং তার ভিত্তিতে অ্যাপ্লিকেশন লজিক বাস্তবায়ন করে। যেমন, ফর্ম প্রক্রিয়া করা, ডেটাবেস থেকে তথ্য আনা, বা কোনো নির্দিষ্ট পেজ প্রদর্শন করা।
  2. ডেটাবেস কুয়েরি: Action ফাংশন ডেটাবেসের সাথে যোগাযোগ করে এবং প্রয়োজনীয় ডেটা প্রসেস করে। এটি ডেটা আপডেট, তৈরি, অথবা রিট্রিভ করার কাজ করে।
  3. রিডিরেকশন এবং রেসপন্স: Action ফাংশন সফলভাবে কার্যক্রম সম্পন্ন হলে ইউজারকে নতুন পেজে রিডিরেক্ট করতে পারে অথবা একটি কনফার্মেশন বার্তা প্রদান করতে পারে।

Web2Py তে Action ফাংশন তৈরি এবং ব্যবহারের উদাহরণ

উদাহরণ ১: সিম্পল Action ফাংশন

# controllers/default.py

def index():
    return dict(message="Hello, World!")

এখানে index() একটি Action ফাংশন, যা একটি সিম্পল মেসেজ "Hello, World!" ভিউতে পাঠায়। এই Action ফাংশনটি http://127.0.0.1:8000/your_app_name/default/index URL থেকে অ্যাক্সেস করা হবে।

উদাহরণ ২: ডেটাবেস কুয়েরি এবং ফলাফল প্রদর্শন

# controllers/default.py

def show_books():
    books = db().select(db.book.ALL)  # ডেটাবেস থেকে সমস্ত বই নেওয়া
    return dict(books=books)  # ভিউতে পাঠানো হবে

এখানে show_books() Action ফাংশনটি ডেটাবেস থেকে সমস্ত বই রেকর্ড রিট্রিভ করে এবং ভিউতে প্রদর্শনের জন্য পাঠায়।

উদাহরণ ৩: ফর্ম প্রক্রিয়াকরণ এবং ভ্যালিডেশন

# controllers/default.py

def add_book():
    form = SQLFORM(db.book)  # বই যোগ করার ফর্ম
    if form.process().accepted:
        response.flash = "Book Added!"
    elif form.errors:
        response.flash = "Please correct the errors!"
    return dict(form=form)  # ফর্ম ভিউতে পাঠানো হবে

এখানে add_book() Action ফাংশনটি একটি ফর্ম প্রক্রিয়া করে। ফর্মটি সফলভাবে সাবমিট হলে "Book Added!" মেসেজ দেখাবে এবং কোনো ত্রুটি থাকলে সংশোধন করার জন্য বার্তা দেখাবে।

উদাহরণ ৪: রিডিরেকশন

# controllers/default.py

def login():
    if not session.logged_in:
        redirect(URL('login_page'))
    return dict(message="Welcome back!")

এখানে login() Action ফাংশনটি চেক করে যে, ইউজার লগ ইন করেছেন কি না। যদি না করে থাকেন, তবে তাকে লগ ইন পেজে রিডিরেক্ট করা হবে।

উদাহরণ ৫: ডেটাবেসের নতুন রেকর্ড তৈরি

# controllers/default.py

def create_record():
    form = SQLFORM.factory(
        Field('name', 'string'),
        Field('email', 'string')
    )
    if form.process().accepted:
        db.records.insert(name=form.vars.name, email=form.vars.email)
        response.flash = "Record Created!"
    return dict(form=form)

এখানে create_record() Action ফাংশনটি একটি ফর্ম তৈরি করে এবং ইউজারের ইনপুট অনুযায়ী ডেটাবেসে একটি নতুন রেকর্ড সন্নিবেশিত করে।


Action ফাংশনের বিশেষ বৈশিষ্ট্য

  1. HTTP রিকোয়েস্ট হ্যান্ডলিং: Action ফাংশন HTTP রিকোয়েস্ট (GET, POST, PUT, DELETE) অনুযায়ী কাজ করে। যেমন, GET রিকোয়েস্টে ডেটা রিট্রিভ করা হয়, এবং POST রিকোয়েস্টে ডেটা সাবমিট করা হয়।
  2. ভিউতে ডেটা পাঠানো: Action ফাংশন ডেটা ভিউতে পাঠায়। এই ডেটা HTML ফরম্যাটে ইউজারের কাছে প্রদর্শিত হয়। একে dict() ব্যবহার করে পাঠানো হয়।
  3. রিডিরেকশন এবং ফ্ল্যাশ বার্তা: Action ফাংশন সফলভাবে কোনো কাজ করলে response.flash ব্যবহার করে ইউজারকে বার্তা পাঠানো হয়। এছাড়া, redirect() ফাংশন ব্যবহার করে অন্য পেজে রিডিরেক্ট করা যেতে পারে।
  4. ফর্ম ভ্যালিডেশন: Action ফাংশনগুলির মাধ্যমে আপনি ফর্ম ভ্যালিডেশন করতে পারেন। যদি ফর্মটি সঠিকভাবে প্রক্রিয়া হয়, তাহলে সফলতার বার্তা দেখানো হয়, এবং যদি কোনো ত্রুটি থাকে, তাহলে ত্রুটির বার্তা দেখানো হয়।

Action ফাংশন এবং URL রাউটিং

Web2Py তে প্রতিটি অ্যাকশন ফাংশন একটি নির্দিষ্ট URL এর সাথে সম্পর্কিত থাকে। উদাহরণস্বরূপ, যদি আপনার controllers/default.py ফাইলে একটি show_books() অ্যাকশন থাকে, তাহলে আপনি এটি এই URL এর মাধ্যমে অ্যাক্সেস করতে পারবেন:

http://127.0.0.1:8000/your_app_name/default/show_books

এছাড়া, যদি আপনি create_record() অ্যাকশনটি কল করেন, তবে এটি এই URL তে পাওয়া যাবে:

http://127.0.0.1:8000/your_app_name/default/create_record

সারাংশ

Web2Py তে Action ফাংশন হল কন্ট্রোলার ফাইলে লেখা ফাংশন, যা ইউজারের রিকোয়েস্ট গ্রহণ করে এবং প্রয়োজনীয় ডেটা প্রসেস করে ভিউতে পাঠায়। এগুলি সাধারণত HTTP রিকোয়েস্টের ভিত্তিতে কাজ করে এবং ডেটাবেস অপারেশন, ফর্ম ভ্যালিডেশন, রিডিরেকশন ইত্যাদি কার্যাবলী সম্পাদন করে। Action ফাংশনগুলির মাধ্যমে আপনি ডেটা রিট্রিভ, আপডেট, ডিলিট করতে এবং ইউজারের ইনপুট প্রক্রিয়া করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...