الفلاتر في جانغو

albaderمنذ 6 سنوات

اليوم درسنا بسيط وجميل بنفس الوقت

داخل القوالب هناك الاف الفلاتر الجاهزة

 

ماهي وظيفة الفلاتر ؟

الفلتر من اسمه يقوم بفلترة المخرجات  قبل عرضها للمستخدم

وهي تستخدم داخل ملفات html

مثال لاستخدام احد الفلاتر

لو كان لدينا دالة بداخل ملف views.py  تعيد قيمة نصية hello world   وتحمل مفتاح باسم value  كما تعلمنا بالدروس السابقة context

يحمل مفتاح وقيمة

ومن ثم قمنا بعرضها داخل القالب 

العرض سيكون كالتالي

{{ value }}

الناتج سيكون  بالمتصفح hello world

هناك فلاتر جاهزة بجانغو  مثلا لتحويل الحروف الى كبيرة

{{ value|upper }}

سيكون الناتج بالمتصفح HELLO WORLD

وهناك الكثير الكثير من الفلاتر الجاهزة

بالامكان البحث عن كل فلتر ووظيفته يصعب ذكرها هنا

 

وليس هذا هو موضوعنا لهذا اليوم تحديداَ

 

ماذا لو اريد فلتر ليس موجود بجانغو ؟

 

ساقوم بعمل فلتر خاص فيني واقوم بتسجيلة لدة مكتبة القوالب واستخدمة مثال

اقوم بدايةَ بعمل دالة

لنفرض الدالة وظيفتها اقتطاع النص  سأستخدم دالة موجودة فعليا ولكن لنفرض انها غير موجودة

الدالة المستخدمه هي مقدمة من جانغو ولكن كمثال

def cut(value, arg):
    """Removes all values of arg from the given string"""
    return value.replace(arg, '')

الدالة تحتاج الى معاملين القيمة والنص اللي ارغب بحذفه

جميل

لكي اقوم بتسجيل هذه الدالة المخصصة ساقوم باستدعاء مكتبة القوالب

from django import template

 

بعدها سأعرف متغير لتعريف المكتبة

register = template.Library()

 

الخطوة الاخيره التي بقيت لنا هي تسجيل الدالة لكي تتعرف عليها القوالب اثناء طلبها

register.filter('cut', cut)

 

الان انتهينا من تسجيل دالتنا المخصصة

 

طريقة استعمالها مثل بقية الفلاتر

{{ somevariable|cut:"0" }}

الاكواد السابقة من موقع جانغو الرسمي فقط للتوضيح

 

الى هنا واستودعكم الله

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !