ฟิลเตอร์มีประโยชน์มากจริงๆ มีฟิลเตอร์ในตัวมากมายใน Django นอกจากนี้เรายังสามารถสร้างตัวกรองของเราเองใน Django ซึ่งเราสามารถใช้ในโครงการ Django ในไฟล์เทมเพลตใดก็ได้ มีการใช้ตัวกรองในหลาย ๆ ด้าน เช่น การทำตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่ใน HTML
ในบทความนี้ เราจะมาดูวิธีการสร้างแท็กตัวกรองเทมเพลตแบบกำหนดเองใน Django มาเริ่มกันเลย
ตัวอย่าง
ก่อนอื่น สร้างโปรเจ็กต์ Django และแอป
เพิ่ม เทมเพลต และ แท็กเทมเพลต ไดเร็กทอรีในโครงการรูทแอปของคุณ โครงสร้างโครงการ จะมีลักษณะเช่นนี้ −
ตัวอย่าง เป็นแอพของเราและ บทช่วยสอน คือโครงการของเรา
ตรวจสอบให้แน่ใจว่า เทมเพลต . ของคุณ ตัวแปรใน settings.py มีลักษณะเช่นนี้ −
นำเข้า osTEMPLATES =[ { 'BACKEND':'django.template.backends.django.DjangoTemplates', 'DIRS':[os.path.join(BASE_DIR, 'example/templates')], 'APP_DIRS':True , 'ตัวเลือก':{ 'context_processors':[ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages context_processors.messages', ], }, },]
เพิ่ม "ตัวอย่าง" เป็นตัวแปร INSTALLED_APPS ของ settings.py . มันเพิ่งตั้งค่า เทมเพลต โฟลเดอร์
ใน เทมเพลต โฟลเดอร์ เพิ่ม home.html และปล่อยให้มันเป็นอย่างนั้นไปก่อน
ใน views.py ของ ตัวอย่าง ให้เพิ่มบรรทัดต่อไปนี้ −
จาก django.shortcuts import render# สร้างมุมมองของคุณ here.def main(request):return render(request,"home.html")
ที่นี่เราแสดงส่วนหน้าหลักของเราในมุมมองหลัก
ใน urls.py ของโครงการ เพิ่มบรรทัดต่อไปนี้ −
from django.contrib import admin from django.urls import path, includeurlpatterns =[ path('',include('example.urls')), path('admin/', admin.site.urls),]ก่อน>ที่นี่เรารวมแอพของเรา urls.py ใน URL หลัก
ใน urls.py ของ ตัวอย่าง หรือแอพเพิ่มสิ่งต่อไปนี้ -
จากเส้นทางการนำเข้า django.urls,includefrom นำเข้า viewsurlpatterns =[ เส้นทาง ('', views.main,name="main")]มันตั้งค่าเส้นทางพื้นฐาน urls และแสดงมุมมองหลักของเรา
สร้าง __init__.py ใน แท็กเทมเพลต โฟลเดอร์และไฟล์ตัวกรองชื่อ "upperfilter.py" . เพิ่มรหัสต่อไปนี้ลงไป -
จาก django.template นำเข้า Libraryregister=Library()@register.filterdef upper(value):return value.upper()ที่นี่เรานำเข้าห้องสมุดและลงทะเบียน เราได้สร้างฟังก์ชันหรือเราสามารถพูดได้ว่าตัวกรองชื่อ บน และเราลงทะเบียนโดยใช้มัณฑนากร ตัวกรองแต่ละตัวใช้ค่าบางอย่าง เรากำหนดได้ว่าจะต้องใช้กี่ค่า
กลับมาที่ home.html . ของคุณ และเพิ่ม −
Tut {% load upperfilter %}{{"สวัสดี เพื่อนๆ สบายดีไหม" | บน}}
ที่ส่วนหน้า เราโหลดตัวกรองโดยใช้ {% %} จากนั้นใน องค์ประกอบเราใช้ตัวกรอง
ตัวกรองนี้จะแปลงตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
ผลลัพธ์
ไม่มีตัวกรอง −
มีตัวกรอง −