
Django Async และ ASGI
ASGI vs WSGI, async views, sync_to_async, async_to_sync, ข้อจำกัดของ ORM แบบ sync, ประสิทธิภาพ async, database connection pooling
1ความแตกต่างหลักระหว่าง WSGI กับ ASGI คืออะไร?
ความแตกต่างหลักระหว่าง WSGI กับ ASGI คืออะไร?
คำตอบ
ASGI (Asynchronous Server Gateway Interface) ขยาย WSGI โดยเพิ่มการรองรับการเขียนโปรแกรมแบบ asynchronous และการเชื่อมต่อแบบคงอยู่อย่าง WebSockets WSGI เป็นแบบ synchronous และจัดการได้เพียงหนึ่งคำขอต่อครั้งต่อหนึ่ง worker ในขณะที่ ASGI สามารถจัดการหลายคำขอพร้อมกันในกระบวนการเดียวได้ด้วย event loop ของ asyncio
2จะประกาศ async view ใน Django ได้อย่างไร?
จะประกาศ async view ใน Django ได้อย่างไร?
คำตอบ
async view ใน Django ประกาศได้ง่าย ๆ เพียงใช้คีย์เวิร์ด async ก่อน def Django จะตรวจจับโดยอัตโนมัติว่า view เป็นแบบ asynchronous หรือไม่ และรันใน event loop ที่เหมาะสม ไวยากรณ์ดั้งเดิมของ Python 3.5+ นี้ได้รับการรองรับเต็มรูปแบบตั้งแต่ Django 3.1
3บทบาทของ sync_to_async ใน Django คืออะไร?
บทบาทของ sync_to_async ใน Django คืออะไร?
คำตอบ
sync_to_async เป็น adapter ที่จัดเตรียมโดย asgiref ซึ่งช่วยให้รันโค้ดแบบ synchronous ภายในบริบทแบบ asynchronous ได้ มันห่อหุ้มฟังก์ชัน synchronous และเรียกใช้ใน thread pool แยกต่างหาก จึงป้องกันไม่ให้ event loop ถูกบล็อก สิ่งนี้จำเป็นสำหรับการเรียกใช้ Django ORM จาก async view เพราะ ORM เป็นแบบ synchronous
ทำไมจึงไม่สามารถใช้ Django ORM โดยตรงใน async view ได้?
บทบาทของ async_to_sync ใน Django คืออะไร?
+23 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Django อื่นๆ
พื้นฐาน Python
Python เชิงวัตถุ
พื้นฐาน Django
Django Models - พื้นฐาน
Django Views
เทมเพลต Django
ฟอร์ม Django
QuerySets ขั้นสูง
การยืนยันตัวตนใน Django
Django Middleware
Django Admin
Django REST Framework
Django Signals
การอัปโหลดไฟล์
การแคชใน 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
Settings และการตั้งค่า Production
Observability และ Monitoring
เชี่ยวชาญ Django สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี