Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
38 lines (22 sloc) 5.74 KB

সিম্পল ভিউ ফাংশন

[ওয়েব যেভাবে কাজ করে] থেকে আমরা জেনেছি যে ক্লায়েন্ট (ব্রাউজার) সার্ভারে (ওয়েবসাইটে) রিকুয়েস্ট করার পর সার্ভার সেই রিকুয়েস্ট অনুযায়ী রেসপন্স সেন্ড করে! আর [এমভিটি প্যাটার্ন] ও [জ্যাঙ্গো ফ্রেমওয়ার্ক] থেকে আমরা জেনেছি যে ওয়েব ফ্রেমওয়ার্কে ভিউ এর কাজ হচ্ছে ক্লায়েন্ট এর রিকুয়েস্ট অনুযায়ী রেসপন্স তৈরি করে সেন্ড করা।

তো এখন আমরা একটা ভিউ তৈরি করব যেটা আমাদেরকে Hello User, Welcome! লেখাটি সেন্ড করবে! অর্থাৎ ব্রাউজারে যদি আমরা আমাদের সাইটের ঠিকানা (127.0.0.0:8000) লিখে এন্টার চাপি তাহলে সেখানে Hello User, Welcome! লেখাটি দেখতে পারব!

ভিউ তৈরি করা হয় ফাংশন লিখে, এবং এই ফাংশনগুলো লেখা হয় অ্যাপ এর views.py ফাইলে! যেটা অ্যাপ তৈরি করার সময় জ্যাঙ্গো অটোমেটিক আমাদের জন্য তৈরি করে দেয়! আমাদের তৈরি অ্যাপ myapp এর ভিতরের views.py ফাইলটা ওপেন করুন। সেখানে এরকম দুটি লাইন দেখতে পাবেনঃ

from django.shortcuts import render

# Create your views here.

নিচের লাইনটি পাইথন কমেন্ট, আর উপরের লাইনটি একটি ইম্পোর্ট স্টেটমেন্ট যেটা render ফাংশন ইম্পোর্ট করছে! আপাতত এটা নিয়ে মাথা না ঘামাই! কমেন্ট এর নিচ থেকে একটা ফাংশন লেখা শুরু করুন এরকম ভাবেঃ

def index(request):
	return HttpResponse(“Hello World!”)

মাত্র দুই লাইন! যেহেতু আপনি পাইথন জানেন তাই বুঝতেই পারছেন যে ফাংশনটা একটা request নামে প্যারামিটার গ্রহণ করবে এবং HttpResponse(“Hello World!”) এই অবজেক্টটাকে রিটার্ন করবে!

আমরা জানি যে ব্রাউজারের রিকুয়েস্ট গ্রহন করা এবং সে অনুযায়ী রেসপন্স রিটার্ন করা ভিউ এর দায়িত্ব! তাই জ্যাঙ্গোর প্রতিটি ভিউ (উপরের ভিউ ফাংশনটি সহ) সব সময় একটা request গ্রহন করবে (যেটা আসলে ব্রাউজারের রিকুয়েস্ট!) এবং একটা রেসপন্স রিটার্ন করবে!

উপরের ভিউ ফাংশনটি যে রেসপন্স অবজেক্ট রিটার্ন করছে সেটা হল এইচটিটিপি রেসপন্স! যা HttpResponse ক্লাসটির মাধ্যমে তৈরি হচ্ছে, এবং সেটা “Hello User, Welcome” স্ট্রিং টিকে আর্গুমেন্ট হিসেবে গ্রহন করছে। মূলত এই স্ট্রিং আর্গুমেন্টটাই রেসপন্স হিসেবে সেন্ড হবে এবং ক্লায়েন্ট এর ব্রাউজারে প্রদর্শিত হবে!

পাইথনিস্টা হিসেবে এতক্ষনে আপনার মনে এই প্রশ্ন উদিত হবার কথা যে আমরা এই HttpResponse ক্লাসটি কোথায় পেলাম!? আসলে এটা এখনো কোথাও পাইনি, বরং এটাকে ইম্পোর্ট করে নিতে হবে! Views.py ফাইলের একদম উপরের ইম্পোর্ট স্টেটমেন্টটির সাথে এটাও যোগ করে দিন এরকম করেঃ

from django.shortcut import render, HttpResponse

আমাদের কাছে এখন একটা ভিউ ফাংশন আছে যেটা ব্রাউজারের রিকুয়েস্ট পেলে এইচটিটিপি রেসপন্স হিসেবে “Hello User, Welcome” স্ট্রিং টি রিটার্ন করবে। আমাদের সম্পুর্ন ভিউ মডিউলের কোডঃ

from django.shortcuts import render, HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("Hello World!")

ভিউ এর কাজ শেষ, এখন এটা ঠিক করতে হবে যে ওয়েবসাইটের কোন ইউআরএল (URL) এ ক্লায়েন্ট রিকুয়েস্ট করলে এই ভিউ ফাংশনটি তার কাজ করবে!