# ২২.২ : কন্টাক্ট app এর ভিউস তৈরী&#x20;

আজকে আসো আমরা আমাদের কাঙ্ক্ষিত api বানিয়েই ফেলবো। তবে শুরুতে আসো তোমাকে wifi রাউটার নিয়ে পড়াশোনা করায়। রাউটার কি করে বলো তো?? সে কিন্তু সিগনাল ক্যাপচার করে। আবার খেয়াল করে দেখছো যে রাউটার এ কিন্তু ২,৩,৪,৫ এভাবে অনেক গুলা এন্টেনা থাকে। যত বেশি এন্টেনা তত ভালো সিগনাল।

<figure><img src="https://3753355949-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZjZRCk5NYynvfinzJmZE%2Fuploads%2FcbWZt4CAAjMTbzWKqaFf%2Fimage.png?alt=media&#x26;token=195ca511-cf21-4c7d-a572-093c1b04d645" alt=""><figcaption><p>wifi router</p></figcaption></figure>

আমাদের রেস্ট ফ্রেমওয়ার্ক এও আমরা এমন রাউটার ইউজ করবো যে আসলে আমাদের রিকোয়েস্ট গুলা হ্যান্ডেল করে রেসপন্স দিবে। রাউটার একই সাথে get,put,আপডেট ডিলিট সব রিকোয়েস্ট হ্যান্ডেল করার ক্ষমতা রাখে আমাদেরকে আলাদা আলাদা করে রিকোয়েস্ট গুলা হ্যান্ডেল করতে হয় না। তবে এই রাউটার ইউজার করতে গেলে তোমাকে অবশ্যই model ভিউ সেট নামে একটা জিনিস কে ইউজ করতে হবে।

আসো আমরা আমাদের সেই ভিউজ নিয়ে কাজ করি। নিচের কোড টা দেখো আগে।

contact\_us/views.py

```python
from django.shortcuts import render
from rest_framework import viewsets
# Create your views here.
from . import models
from . import serializers

class ContactusViewset(viewsets.ModelViewSet):
    queryset = models.ContactUs.objects.all()
    serializer_class = serializers.ContactUsSerializer
```

queryset → এটা একটা বিল্ট ইন প্যারামিটার যেখানে তুমি তোমার মডেল এর নাম দিবে। মডেল এ সব ধরনের কোয়েরি সে হ্যান্ডেল করবে

serializer\_class → এখানে তুমি তোমার সিরিয়ালাইজার এর নাম দিবে যার কাজ হচ্ছে মডেল এ তুমি কোনো টাইপ কোয়েরি যেমন get,put,update,delete যেটায় করো না কেনো সেটার রিকোয়েস্ট টা frontend থেকে json ফরম্যাটে এ ক্যাপচার করে তারপর সেই json কে আমার পাইথন এর অবজেক্ট এ কনভার্ট করে মডেল এ পাঠাবে।

তো এবার আসো আমাদের urls.py এ যেখানে আমরা আমাদের সেই রাউটার বানাবো। সেটার জন্যে তোমাকে রেস্ট ফ্রেমওয়ার্ক থেকে DefaultRouter কে ইমপোর্ট করে আনতে হবে আর তারপর সেটাকে কল করে একটা রাউটার বানাতে হবে। রাউটার কে এবার register করবো যেখানে তুমি যে নাম দিবে সেটাই হবে তোমার url এর নাম আর সেখানেই গো get,post,update,delete রিকোয়েস্ট করতে পারবে।

```python
from rest_framework.routers import DefaultRouter
from django.urls import path, include
from . import views
router = DefaultRouter() # amader router

router.register('', views.ContactusViewset) # router er antena
urlpatterns = [
    path('', include(router.urls)),
]
```

final result :&#x20;

<figure><img src="https://3753355949-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZjZRCk5NYynvfinzJmZE%2Fuploads%2F8ekaH3at79pQrV0qyRLm%2Fimage.png?alt=media&#x26;token=612977eb-581c-4184-b475-7267105de474" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3753355949-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZjZRCk5NYynvfinzJmZE%2Fuploads%2FvSHTahfQU6cscsBzcdzj%2Fimage.png?alt=media&#x26;token=071b6231-3fb2-4c6d-8766-ca12003b69a2" alt=""><figcaption></figcaption></figure>
