মডিউল ১.৫ : ইউআরএল এবং ভিউজ
আজকে আমরা ইউআরএল আর ভিউস নিয়ে বিস্তারিত জানবো
Last updated
আজকে আমরা ইউআরএল আর ভিউস নিয়ে বিস্তারিত জানবো
Last updated
একটা সিস্টেম এর একটা মেজর পার্ট হচ্ছে request response মডেল। তুমি গুগল, ইউটিউব, ইনস্টাগ্রাম, ফেসবুক যেখানেই যাও না কেনো সবাই এই মডেল দিয়েই চলে।
এখন এইযে রিকোয়েস্ট বলতে কি বুঝায় আমরা ?ধরো গুগল এ সার্চ করলে "How to learn django" এই রিকোয়েস্ট টা গুগল প্রসেস করে তোমাকে রেসপন্স হিসেবে বেশ কিছু ব্লগ এর লিঙ্ক দিলো।
গুগল এই রিকোয়েস্ট টা পেলো url এর মাধ্যমে আর সেই রিকোয়েস্ট টা প্রসেস করে সে আমাকে রেসপন্স দিলো । এখন আমরা django এর ভাষায় যদি বলি, url এর মাধ্যমে আমরা রিকোয়েস্ট করি আর url এর কাজ গুলা হ্যান্ডেল করে urls.py আর প্রতিটা ইউআরএল এর রিকোয়েস্ট এর উপর base করে আলাদা আলাদা রেসপন্স পাঠানোর যে কাজ টা সেটা করে হচ্ছে views.py।
একটা বিষয় তুমি অলরেডী খেয়াল করছো যে যখনি আমরা একটা প্রজেক্ট তৈরী করি সেখানে urls.py থাকলেও views.py ফাইল টা থাকে না । আর তাই এখানে কাজ করতে গেলে আমাদেরকে অবশ্যই views.py ফাইল তৈরী করে নিতে হবে । আশা করি কাজ টা তুমি করে ফেলছো ।
এখন আমরা যদি request response মডেল টা ফলো করি তাইলে আমাদের কে url ডিফাইন করতে হবে সেই সাথে ওই url এ একজন user রিকোয়েস্ট করলে তাকে রেসপন্স হিসেবে কি দেখাবো সেটা views.py এ লিখে দিতে হবে।
নিচের ছবিতে খেয়াল করলে দেখবে আমরা urlpatterns নামে একটা লিস্ট এর মধ্যে path ফাংশন এর মধ্যে লিখে দিয়েছি আমাদের url হচ্ছে contact/.
অর্থাৎ url টা দেখতে হবে অনেক টা এমন http://127.0.0.1:8000/contact
এখন যদি কেউ এই url টা তার ব্রাউজার এ পেস্ট করে তাইলে সে রেসপন্স হিসেবে কি দেখতে পাবে সেটার জন্যে আমরা এই url এর পাশে কমা দিয়ে views এর একটা ফাংশন কে কানেক্ট করে দিয়েছি যাতে করে contact ফাংশন রিকোয়েস্ট টা অ্যাকসেপ্ট করে একটা রেসপন্স তাকে দিতে পারে।
এখন আসো রেসপন্স দেখানোর জন্যে আমরা views এর মধ্যে কি লিখবো কিভাবে লিখবো সেটা দেখি। রেসপন্স দেখানোর জন্যে আমরা দুই ভাবে views লিখে পারি
১. Function Based View
২. Class Based View
আমরা আপাতত ফাংশন based ভিউ দেখবো , পরে ক্লাস টা দেখে নিবো।
এখন আসো একটা ফাংশন declare করলাম contact নামে, তুমি তোমার ইচ্ছা মত নাম দিতে পারো সেখানে প্যারামিটার হিসেবে নিলাম request কে অর্থাৎ user url এ রিকোয়েস্ট করলে সেই রিকোয়েস্ট টা যেনো সে ক্যাপচার করতে পারে। এখন মাথায় রাখবা এই ফাংশন থেকে রেসপন্স সবসময় একটা json ফরম্যাটে দিতে হবে, json হচ্ছে ওয়েবসাইট এর রিকোয়েস্ট রেসপন্স এর কমিউনিকেশন মিডিয়াম। ধরো আমরা যেমন একে অন্যের সাথে কথা বলার জন্যে বাংলা ভাষা ইউজ করি তেমনি রিকোয়েস্ট আর রেসপন্স তাদের মধ্যে কথা বলার জন্যে json ভাষা কে ইউজ করে, এটা দেখতে কেমন সেটা পরে জানবো আমরা।
এখন আমরা HttpResponse এই ফাংশন এর মধ্যে যে টেক্সট দিবো সেটা যদি রিটার্ন করি তাইলে যে কেউ ওই url এ রিকোয়েস্ট করলেই এই মেসেজ দেখতে পাবে।