কম্পিউটার টিউটোরিয়াল

পাইথন CGI প্রোগ্রামিং-এ কোনো মডিউল প্রয়োজন?


পাইথনের cgi মডিউল সাধারণত পাইথনে CGI প্রোগ্রাম লেখার শুরুর জায়গা। cgi মডিউলের প্রধান উদ্দেশ্য হলো HTML ফর্ম থেকে CGI প্রোগ্রামে পাস করা ভ্যালু এক্সট্রাক্ট করা। অধিকাংশ সময় HTML ফর্মের মাধ্যমে CGI অ্যাপ্লিকেশনlarla ইন্টারঅ্যাক্ট করা হয়। ফর্মে কিছু ভ্যালু পূরণ করা হয় যা অ্যাকশনের ডিটেইলস স্পেসিফাই করে, তারপর CGI-কে কল করা হয় যাতে আপনার স্পেসিফিকেশন অনুযায়ী অ্যাকশন পারফর্ম করে।

HTML ফর্মে আপনি অনেক ইনপুট ফিল্ড যোগ করতে পারেন যা বিভিন্ন টাইপের হতে পারে (টেক্সট, চেকবক্স, পিকলিস্ট, রেডিও বাটন ইত্যাদি)।

আপনার পাইথন স্ক্রিপ্ট import cgi দিয়ে শুরু হওয়া উচিত। CGI মডিউলের মূল কাজ হলো কলিং HTML ফর্মের সকল ফিল্ডকে ডিকশনারির মতো বিবেচনা করা। আপনি যা পাবেন সেটি একদম পাইথন ডিকশনারি নয়, কিন্তু এর সাথে কাজ করা সহজ। একটি উদাহরণ দেখি:

উদাহরণ

import cgi
form = cgi.FieldStorage()   # FieldStorage অবজেক্ট ফর্ম ডেটা ধারণ করতে
# চেক করা "username" ফিল্ড ইউজ হয়েছে কিনা...
# একাধিকবার ইউজ হতে পারে (কমা দিয়ে সেপারেট)
if form.has_key('username'):
    username = form["username"]
    usernames = ""
    if type(username) is type([]):
        # একাধিক username ফিল্ড স্পেসিফাইড
        for item in username:
            if usernames:
                # পরবর্তী আইটেম — কমা ইনসার্ট
                usernames = usernames + "," + item.value
            else:
                # প্রথম আইটেম — কমা ইনসার্ট না
                usernames = item.value
    else:
        # একক username ফিল্ড স্পেসিফাইড
        usernames = username.value
# মজার জন্য কলিং ফর্মের সকল ফিল্ডের HTML লিস্ট তৈরি
field_list = '<ul>\n'
for field in form.keys():
    field_list = field_list + '<li>%s</li>\n' % field
field_list = field_list + '</ul>\n'

ইউজারের কাছে উপযোগী পেজ প্রেজেন্ট করতে আরও কাজ করতে হবে, কিন্তু সাবমিটিং ফর্মে কাজ করে একটি ভালো শুরু করেছি।

  1. পাইথনে প্যাকেজ কী?

  2. পাইথনে এক্সসেপশন হ্যান্ডলিং-এর সেরা অভ্যাস

  3. পাইথন ফাংশনে বাধ্যতামূলক আর্গামেন্ট (Required Arguments)

  4. পাইথন ভেরিয়েবল স্কোপিং নিয়ম: LEGB রুল