Django

⌘K
  1. Home
  2. Django
  3. Django তে কিভাবে কাজ করতে...
  4. Views
  5. 05. কিছু ডেকোরেটর এর উদাহরণ

05. কিছু ডেকোরেটর এর উদাহরণ

@login_required

@permission_required

@user_passes_test

@csrf_exempt

@cache_page

@require_http_methods

@login_required: নিশ্চিত করে যে ব্যবহারকারী ভিউ অ্যাক্সেস করার আগে লগ ইন করেছেন। ব্যবহারকারী প্রমাণীকৃত না হলে লগইন পৃষ্ঠায় পুনঃনির্দেশ করে।

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    # Your view logic here

@permission_required: ব্যবহারকারীর অনুমতির উপর ভিত্তি করে ভিউতে অ্যাক্সেস সীমাবদ্ধ করে। ব্যবহারকারীর প্রয়োজনীয় অনুমতি না থাকলে লগইন পৃষ্ঠায় বা একটি নির্দিষ্ট ভিউতে পুনঃনির্দেশ করে।

from django.contrib.auth.decorators import permission_required

@permission_required('myapp.change_mymodel')
def my_view(request):
    # Your view logic here

কিভাবে পারমিশন বানাতে হয় এ সম্পর্কে আরেকটি টিউটোরিয়াল সামনে দেয়া হবে এখানে বলা হয়েছে myapp এর mymodel এর change পারমিশন apply হবে এই ভিউটির জন্য আমরা এ সম্পর্কে সামনে জানবো বিস্তারিত।

@user_passes_test: একজন ব্যবহারকারী ভিউ অ্যাক্সেস করতে পারে কিনা তা নির্ধারণ করতে আপনাকে একটি কাস্টম পরীক্ষা ফাংশন সংজ্ঞায়িত করার অনুমতি দেয়।

from django.contrib.auth.decorators import user_passes_test

def test_func(user):
    return user.is_staff

@user_passes_test(test_func)
def my_view(request):
    # Your view logic here

@csrf_exempt: CSRF (ক্রস-সাইট অনুরোধ জালিয়াতি) সুরক্ষা থেকে দৃশ্যকে ছাড় দেয়। এই ডেকোরেটর ব্যবহার করার সময় সতর্ক থাকুন, কারণ এটি আপনার view কে নিরাপত্তার ঝুঁকিতে ফেলতে পারে।

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def my_view(request):
    # Your view logic here

@cache_page: একটি নির্দিষ্ট সময়ের জন্য ভিউ এর আউটপুট ক্যাশ করে, পরবর্তী অনুরোধের জন্য ক্যাশ করা সামগ্রী পরিবেশন করে কর্মক্ষমতা উন্নত করে।

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)  # Cache for 15 minutes
def my_view(request):
    # Your view logic here

@require_http_methods: দেখার জন্য অনুমোদিত HTTP পদ্ধতি সীমাবদ্ধ করে।

from django.views.decorators.http import require_http_methods

@require_http_methods(["GET", "POST"])
def my_view(request):
    # Your view logic here

Django তে আরো অনেক ডেকোরেটর আছে

How can we help?