Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

สร้างแท็กตัวกรองของคุณเองใน Django


ฟิลเตอร์มีประโยชน์มากจริงๆ มีฟิลเตอร์ในตัวมากมายใน Django นอกจากนี้เรายังสามารถสร้างตัวกรองของเราเองใน Django ซึ่งเราสามารถใช้ในโครงการ Django ในไฟล์เทมเพลตใดก็ได้ มีการใช้ตัวกรองในหลาย ๆ ด้าน เช่น การทำตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่ใน HTML

ในบทความนี้ เราจะมาดูวิธีการสร้างแท็กตัวกรองเทมเพลตแบบกำหนดเองใน Django มาเริ่มกันเลย

ตัวอย่าง

ก่อนอื่น สร้างโปรเจ็กต์ 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 %} 

{{"สวัสดี เพื่อนๆ สบายดีไหม" | บน}}

ที่ส่วนหน้า เราโหลดตัวกรองโดยใช้ {% %} จากนั้นใน

องค์ประกอบเราใช้ตัวกรอง

ตัวกรองนี้จะแปลงตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่

ผลลัพธ์

ไม่มีตัวกรอง

สร้างแท็กตัวกรองของคุณเองใน Django

มีตัวกรอง

สร้างแท็กตัวกรองของคุณเองใน Django