
Django Signals
สัญญาณในตัว, pre_save, post_save, pre_delete, สัญญาณที่กำหนดเอง, receiver, แนวทางปฏิบัติที่ดีของสัญญาณ
1สัญญาณ (signal) ใน Django คืออะไร?
สัญญาณ (signal) ใน Django คืออะไร?
คำตอบ
สัญญาณคือกลไกที่ทำให้บางส่วนของแอปพลิเคชันได้รับการแจ้งเตือนเมื่อมีการกระทำเฉพาะเกิดขึ้นที่อื่นในเฟรมเวิร์ก สัญญาณช่วยแยกการเชื่อมโยง (decoupling) ระหว่างผู้ส่งเหตุการณ์กับ receiver ที่ตอบสนองต่อเหตุการณ์นั้น Django มีสัญญาณในตัวหลายตัว เช่น pre_save, post_save, pre_delete และ post_delete สำหรับการดำเนินการกับโมเดล
2สัญญาณใดถูกส่งออกก่อนที่อ็อบเจกต์จะถูกบันทึกลงฐานข้อมูล?
สัญญาณใดถูกส่งออกก่อนที่อ็อบเจกต์จะถูกบันทึกลงฐานข้อมูล?
คำตอบ
สัญญาณ pre_save จะถูกส่งออกก่อนที่เมธอด save() ของโมเดลจะทำงาน ช่วยให้สามารถแก้ไขอินสแตนซ์ก่อนการบันทึกได้ เช่น การคำนวณค่าที่ได้มาหรือการทำให้ข้อมูลเป็นมาตรฐาน สัญญาณนี้มีประโยชน์เพราะถูกเรียกทั้งเมื่อสร้างและเมื่ออัปเดตอ็อบเจกต์
3ควรใช้เดคอเรเตอร์ใดในการเชื่อมต่อฟังก์ชัน receiver เข้ากับสัญญาณของ Django?
ควรใช้เดคอเรเตอร์ใดในการเชื่อมต่อฟังก์ชัน receiver เข้ากับสัญญาณของ Django?
คำตอบ
เดคอเรเตอร์ @receiver จาก django.dispatch ช่วยให้เชื่อมต่อฟังก์ชันเข้ากับสัญญาณได้แบบประกาศ (declarative) โดยรับสัญญาณที่ต้องการรับฟังเป็นพารามิเตอร์ และรับ sender เป็นทางเลือกเพื่อกรองผู้ส่ง วิธีนี้อ่านง่ายกว่าเมธอด connect() และทำให้การดูแลรักษาโค้ดง่ายขึ้น
อาร์กิวเมนต์ใดของสัญญาณ post_save ที่ใช้แยกแยะระหว่างการสร้างกับการอัปเดต?
ในแอปพลิเคชัน Django แนะนำให้วางโค้ด receiver ของสัญญาณไว้ที่ใด?
+15 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Django อื่นๆ
พื้นฐาน Python
Python เชิงวัตถุ
พื้นฐาน Django
Django Models - พื้นฐาน
Django Views
เทมเพลต Django
ฟอร์ม Django
QuerySets ขั้นสูง
การยืนยันตัวตนใน Django
Django Middleware
Django Admin
Django REST Framework
การอัปโหลดไฟล์
การแคชใน Django
Django Sessions
อีเมลใน Django
การทดสอบ Django
ความปลอดภัยของ Django
การ Deploy Django
Django ORM ขั้นสูง
ประสิทธิภาพของ Django
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django ในระบบนิเวศ Microservices
คำสั่ง Django แบบกำหนดเอง
การทำให้รองรับหลายภาษาใน Django
Design Patterns ใน Django
Django Async และ ASGI
Settings และการตั้งค่า Production
Observability และ Monitoring
เชี่ยวชาญ Django สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี