Django

Django Async และ ASGI

ASGI vs WSGI, async views, sync_to_async, async_to_sync, ข้อจำกัดของ ORM แบบ sync, ประสิทธิภาพ async, database connection pooling

26 คำถามสัมภาษณ์·
Senior
1

ความแตกต่างหลักระหว่าง 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 ก่อน def Django จะตรวจจับโดยอัตโนมัติว่า view เป็นแบบ asynchronous หรือไม่ และรันใน event loop ที่เหมาะสม ไวยากรณ์ดั้งเดิมของ Python 3.5+ นี้ได้รับการรองรับเต็มรูปแบบตั้งแต่ Django 3.1

3

บทบาทของ sync_to_async ใน Django คืออะไร?

คำตอบ

sync_to_async เป็น adapter ที่จัดเตรียมโดย asgiref ซึ่งช่วยให้รันโค้ดแบบ synchronous ภายในบริบทแบบ asynchronous ได้ มันห่อหุ้มฟังก์ชัน synchronous และเรียกใช้ใน thread pool แยกต่างหาก จึงป้องกันไม่ให้ event loop ถูกบล็อก สิ่งนี้จำเป็นสำหรับการเรียกใช้ Django ORM จาก async view เพราะ ORM เป็นแบบ synchronous

4

ทำไมจึงไม่สามารถใช้ Django ORM โดยตรงใน async view ได้?

5

บทบาทของ async_to_sync ใน Django คืออะไร?

+23 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Django อื่นๆ

พื้นฐาน Python

Junior
25 คำถาม

Python เชิงวัตถุ

Junior
20 คำถาม

พื้นฐาน Django

Junior
20 คำถาม

Django Models - พื้นฐาน

Junior
22 คำถาม

Django Views

Junior
20 คำถาม

เทมเพลต Django

Junior
18 คำถาม

ฟอร์ม Django

Mid-Level
22 คำถาม

QuerySets ขั้นสูง

Mid-Level
25 คำถาม

การยืนยันตัวตนใน Django

Mid-Level
22 คำถาม

Django Middleware

Mid-Level
18 คำถาม

Django Admin

Mid-Level
20 คำถาม

Django REST Framework

Mid-Level
30 คำถาม

Django Signals

Mid-Level
18 คำถาม

การอัปโหลดไฟล์

Mid-Level
20 คำถาม

การแคชใน Django

Mid-Level
20 คำถาม

Django Sessions

Mid-Level
18 คำถาม

อีเมลใน Django

Mid-Level
18 คำถาม

การทดสอบ Django

Mid-Level
22 คำถาม

ความปลอดภัยของ Django

Mid-Level
22 คำถาม

การ Deploy Django

Mid-Level
24 คำถาม

Django ORM ขั้นสูง

Senior
28 คำถาม

ประสิทธิภาพของ Django

Senior
24 คำถาม

Django & Celery

Senior
22 คำถาม

Django Channels

Senior
24 คำถาม

Django & GraphQL

Senior
24 คำถาม

Django & Docker

Senior
20 คำถาม

Django ในระบบนิเวศ Microservices

Senior
24 คำถาม

คำสั่ง Django แบบกำหนดเอง

Senior
18 คำถาม

การทำให้รองรับหลายภาษาใน Django

Senior
20 คำถาม

Design Patterns ใน Django

Senior
24 คำถาม

Settings และการตั้งค่า Production

Senior
22 คำถาม

Observability และ Monitoring

Senior
24 คำถาม

เชี่ยวชาญ Django สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี