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

ডজ্যাঙ্গোতে ফর্ম উইজেট ব্যবহার

এই আর্টিকেলে, আমরা দেখব কিভাবে ডজ্যাঙ্গো ফর্মে উইজেট ব্যবহার করতে হয়। উইজেটগুলো ফ্রন্টএন্ডকে ভালো করতে খুব সহায়ক হতে পারে। উইজেট হলো HTML এলিমেন্টগুলো যা ডজ্যাঙ্গো ফর্ম থেকে রেন্ডার হয়, textarea, input, password input, ইত্যাদি সবই উইজেট।

প্রথমে একটি ডজ্যাঙ্গো প্রজেক্ট এবং একটি অ্যাপ তৈরি করুন। আমি প্রজেক্টের নাম দিয়েছি "tutorial14" এবং অ্যাপের নাম "djangoFormWidget"।

settings.py-তে অ্যাপ যোগ করুন এবং প্রজেক্ট urls.py-এ অ্যাপের URL ইনক্লুড করুন।

Templates, home.html, forms.py সরি afor সব বেসিক ফাইল এবং ফোল্ডার তৈরি করুন।

উদাহরণ

অ্যাপের urls.py-তে:

from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.home, name="home")
]

এটি ভিউ রেন্ডার করার জন্য একটি বেসিক URL তৈরি করবে।

views.py-তে:

from django.shortcuts import render
from .forms import CommentForm

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def home(request):
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            form.save()
    commentform = CommentForm()
    return render(request, 'home.html', {"commentform": commentform})

এখানে, আমরা আমাদের ফর্ম ইম্পোর্ট করেছি এবং এর POST এবং GET রিকোয়েস্ট হ্যান্ডল করেছি।

POST-এ, আমরা ডেটা সেভ করেছি এবং GET-এ, আমরা ফ্রন্টএন্ডে ফর্ম পাঠিয়েছি।

models.py-তে:

from django.db import models

class CommentModel(models.Model):
    comment = models.CharField(max_length=500)

এখানে আমরা একটি মডেল তৈরি করেছি যা আমরা আমাদের ফর্মে ব্যবহার করব। ফর্ম ব্যবহার করার জন্য এই মডেল দরকার।

home.html-তে:

<!DOCTYPE html>
<html>
    <head>
        <title>TUT</title>
    </head>
    <body>
        {% for fm in commentform %}
        <form method="post">
            {% csrf_token %}
            {{fm.errors}}<br>
            {{fm.label}}:{{fm}}<br>
            {% endfor %}
            <button type="submit">Submit</button>
        </form>
    </body>
</html>

এটি একটি সিম্পল ফ্রন্টএন্ড যেখানে আমরা আমাদের ফর্ম রেন্ডার করছি।

forms.py-তে:

from django import forms
from .models import CommentModel

class CommentForm(forms.Form):
    comment = forms.CharField(widget=forms.Textarea(attrs={'class': 'comment', 'title': 'add comment'}))
    # এটি উইজেটের জন্য ব্যবহৃত লাইন, এখানে আমি TextArea উইজেট যোগ করেছি, আপনি দেখতে পাচ্ছেন attrs attribute ব্যবহার করে উইজেটে ক্লাসও অ্যাসাইন করেছি।

    def save(self):
        data = self.data
        modelRef = CommentModel(comment=data['comment'])
        modelRef.save()

এটি সেই জায়গা যেখানে আমরা আমাদের ফর্ম তৈরি করি। আমরা বিল্ট-ইন ডজ্যাঙ্গো ফর্ম উইজেট ব্যবহার করেছি ফর্মে একটি textarea রেন্ডার করার জন্য।

আউটপুট

ডজ্যাঙ্গোতে ফর্ম উইজেট ব্যবহার

  1. ডজ্যাঙ্গো রানটাইম সিস্টেম চেক

  2. ডজ্যাঙ্গো REST Framework JWT অথেনটিকেশন

  3. পাইথন - কিভি (Kivy)-এ BoxLayout উইজেট

  4. পাইথন Tkinter-এ Progressbar উইজেট