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

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

তো এখন আমরা একটা ভিউ তৈরি করব যেটা আমাদেরকে 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) এ ক্লায়েন্ট রিকুয়েস্ট করলে এই ভিউ ফাংশনটি তার কাজ করবে!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://django.howtocode.dev/introduction_to_view.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
