repo นี้เป็นการรวบรวมรูปแบบที่ฉันใช้และพัฒนาอย่างคร่าวๆ และพร้อมใช้งานเมื่อเขียนโปรเจ็กต์ Django ที่ใช้ htmx พร้อมโค้ดตัวอย่างที่สมบูรณ์
เอกสารนี้มีจุดประสงค์เพื่อดูบน GitHub: https://github.com/spookylukey/django-htmx-patterns/ และโค้ดสามารถเรียกใช้ในเครื่องได้หากจำเป็น
จุดมุ่งหมายของฉันคือการจัดทำเอกสารและแบ่งปัน:
รหัสที่แสดงขึ้นอยู่กับ Django และ htmx เท่านั้น เว้นแต่จะระบุไว้เป็นอย่างอื่น ฉันจะไม่บรรจุมันไว้เป็นห้องสมุด แต่กลับถูกเผยแพร่สู่สาธารณสมบัติ และคุณควรคัดลอกและวางตามความต้องการของคุณเอง (ดูเอกสาร "แนวทาง" ว่าทำไม)
มีแพ็คเกจ Django บางตัวที่ให้ทางลัดสำหรับบางสิ่งที่กล่าวถึงในที่นี้ เช่น django-htmx แต่ฉันจะไม่ใช้แพ็คเกจใด ๆ เพื่อความชัดเจน
เรื่องนี้กำลังดำเนินการอยู่ครับ จะพยายามอัพเดทต่อไปครับ ประชาสัมพันธ์ยินดีต้อนรับ.
การสนับสนุนที่ใหญ่ที่สุดใน repo นี้คือ:
อินไลน์บางส่วนพร้อมการเลือกบล็อกในเทมเพลต
นี่คือรูปแบบที่ช่วยให้คุณสามารถรวมส่วนต่างๆ ของหน้าไว้ด้วยกันเพื่อ "ลักษณะการทำงานในท้องถิ่น" ที่ยอดเยี่ยม และหลีกเลี่ยงไม่ให้โค้ดมุมมองต้องรู้สิ่งใดๆ เกี่ยวกับเทมเพลตส่วนย่อย/บางส่วนที่กำลังใช้งานอยู่ การเปลี่ยนแปลงโค้ดเทมเพลตสำหรับ htmx มักจะเป็นเรื่องของการห่อบางส่วนของเทมเพลตใน block
เทมเพลต Django และเพิ่มแอตทริบิวต์ htmx มาตรฐาน การเปลี่ยนแปลงโค้ดมุมมองสำหรับ htmx มักจะเป็นเพียงการเพิ่มมัณฑนากรเดียวในฟังก์ชันมุมมอง: @for_htmx(use_block_from_params=True)
รูปแบบนี้สร้างความแตกต่างอย่างมากต่อการใช้งาน htmx ใน Django
ตัวอย่างแบบเต็มของการตรวจสอบความถูกต้องของแบบฟอร์ม htmx แบบฟิลด์ต่อฟิลด์ ในขณะที่ยังคงรักษา Form abstraction ของ Django และคุณประโยชน์ทั้งหมดไว้
รูปแบบที่ดีสำหรับการทำกิริยาช่วย
จังโก้
htmx (ดูเทมเพลตฐานสำหรับเอกสารการติดตั้งที่แนะนำ)
รูปแบบที่ดีที่สุดที่นี่ต้องใช้ django-render-block:
pip ติดตั้ง django-render-block
โค้ดตัวอย่างของฉันมีสัตว์ประหลาดที่น่าเศร้าและมีความสุขที่สามารถกอดหรือเตะเพื่อเปลี่ยนสถานะได้ โปรดทราบว่าฉันไม่สนับสนุนการเตะสัตว์ประหลาด และไม่แนะนำให้กอดพวกมัน
ในโฟลเดอร์โค้ดคือแอปสาธิตซึ่งมีตัวอย่างการทำงานเต็มรูปแบบของทุกสิ่งในเอกสาร
หากต้องการติดตั้งในเครื่อง ให้สร้างและเปิดใช้งาน virtualenv จากนั้นทำ:
รหัสซีดี pip ติดตั้ง -r ข้อกำหนด.txt หลาม Manage.py โยกย้าย หลาม Manage.py รันเซิร์ฟเวอร์
ยินดีรับฟังความคิดเห็นของคุณ! ติดดาว repo นี้ถ้าคุณชอบ และโปรดแบ่งปันแนวคิดในการสนทนา
แหล่งข้อมูล htmx ที่ดีอื่น ๆ :
หากคุณชอบ repo นี้ คุณอาจได้รับความช่วยเหลือจากแหล่งข้อมูลอื่นๆ ของฉัน: