วิธีพิมพ์ URLs แบบไดนามิกใน Django Templates โดยไม่ต้อง Hardcode
ในการพัฒนา Django นักพัฒนามักต้องการลิงก์ไปยังมุมมองในเทมเพลตของพวกเขา อย่างไรก็ตาม การ Hardcode URLs เหล่านี้อาจทำให้เกิดปัญหา โดยเฉพาะเมื่อเส้นทางเปลี่ยน วันนี้เราจะพูดคุยเกี่ยวกับวิธีการสร้าง URLs แบบไดนามิกในเทมเพลต Django ของคุณโดยใช้รูปแบบ URL ชื่อ ซึ่งช่วยเพิ่มความสามารถในการบำรุงรักษาและความยืดหยุ่นในโปรเจ็กต์ของคุณ
ปัญหา: Hardcode URLs ในเทมเพลต
เมื่อกำหนดเส้นทางในแอปพลิเคชัน Django ของคุณ อาจดูเหมือนว่าง่ายกว่าที่จะเขียน URL โดยตรงในเทมเพลตของคุณ ตัวอย่างเช่น คุณอาจต้องการแสดงลิงก์เพื่อเพิ่มผลิตภัณฑ์ใหม่:
/admin/manage/products/add
อย่างไรก็ตาม การ Hardcode URLs หมายความว่า หากคุณเปลี่ยนรูปแบบ URL ในไฟล์ urls.py
คุณต้องค้นหารายการทุกครั้งที่คุณได้อ้างอิงถึง URL นั้นในเทมเพลตของคุณ สิ่งนี้ไม่เพียงเพิ่มความน่าจะเป็นของข้อผิดพลาด แต่ยังทำให้โค้ดของคุณบำรุงรักษาได้ยากขึ้น
นี่คือเส้นทาง URL โดยเฉพาะที่กล่าวถึง:
(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}),
ความท้าทายคือต้องสร้าง URL นี้แบบไดนามิกภายในเทมเพลต
ทางออก: การใช้รูปแบบ URL ชื่อ
เพื่อหลีกเลี่ยงการ Hardcode คุณสามารถใช้ รูปแบบ URL ชื่อ ใน Django นี่คือวิธีการตั้งค่าและใช้มันอย่างมีประสิทธิภาพ
ขั้นตอนที่ 1: กำหนดรูปแบบ URL ชื่อ
ก่อนอื่น คุณต้องปรับไฟล์ urls.py
ของคุณเพื่อรวมชื่อสำหรับรูปแบบ URL นี่คือวิธีที่คุณสามารถจัดโครงสร้างมัน:
(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}, "create-product"),
โดยการเพิ่ม "create-product"
ที่ตอนท้ายของการกำหนดรูปแบบ คุณมอบชื่อให้กับ URL นี้ สิ่งนี้จะช่วยให้คุณอ้างอิงได้ง่ายตลอดโปรเจ็กต์ของคุณ
ขั้นตอนที่ 2: การใช้ URL ที่ตั้งชื่อในเทมเพลตของคุณ
ถัดไป ในเทมเพลต Django ของคุณ คุณสามารถสร้าง URL แบบไดนามิกโดยใช้แท็กเทมเพลต {% url %}
นี่คือวิธีการทำ:
สำหรับรุ่นของ Django ก่อนหน้า 1.5 ให้ใช้ไวยากรณ์นี้:
{% url create-product %}
หากคุณกำลังใช้ Django 1.5 หรือใหม่กว่า คุณควรล้อมชื่อด้วยเครื่องหมายคำพูด:
{% url 'create-product' %}
ประโยชน์ของการใช้รูปแบบ URL ชื่อ
-
การบำรุงรักษา: หากรูปแบบ URL เปลี่ยน คุณจะต้องอัปเดตเส้นทางในที่เดียว (ไฟล์
urls.py
) -
ความชัดเจน: รูปแบบ URL ชื่อทำให้เทมเพลตของคุณสะอาดและชัดเจนมากขึ้น เนื่องจากคุณจะไม่แสดง URLs จริงที่อาจเปลี่ยนแปลงได้
-
การจัดการ URL แบบไดนามิก: ด้วย URLs ที่มีชื่อ คุณสามารถจัดการ URLs และพารามิเตอร์ที่ซับซ้อนได้ง่ายในลักษณะไดนามิก
สรุป
การใช้รูปแบบ URL ชื่อใน Django เป็นวิธีที่ทรงพลังในการสร้าง URLs แบบไดนามิกโดยไม่ต้อง Hardcode ในเทมเพลตของคุณ โดยการปฏิบัติตามขั้นตอนที่กล่าวถึงข้างต้น คุณสามารถเพิ่มความสามารถในการบำรุงรักษาแอปพลิเคชันของคุณและหลีกเลี่ยงปัญหาทั่วไปที่เกี่ยวข้องกับการเปลี่ยนแปลง URL ยอมรับแนวปฏิบัตินี้และโปรเจ็กต์ Django ของคุณจะได้รับประโยชน์อย่างมาก!
หากคุณมีคำถามหรือจำเป็นต้องชี้แจงเพิ่มเติมเกี่ยวกับการใช้รูปแบบ URL ชื่อ โปรดอย่าลังเลที่จะติดต่อมา!