ModelViewSet และเราเตอร์
สร้างเส้นทาง CRUD โดยอัตโนมัติ
ModelViewSet และเราเตอร์ เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
ปัญหาการเขียน CRUD ซ้ำ ๆ
การเขียนรายการ สร้าง อ่าน อัปเดต และลบด้วยตนเองทำให้มีโค้ดที่เกือบเหมือนกันจำนวนมาก ViewSetจะรวมทั้งหมดไว้ในคลาสเดียวที่เป็นระเบียบ
ทำความรู้จัก ModelViewSet
ModelViewSet มอบ CRUD อย่างครบถ้วนสำหรับโมเดลแทบจะโดยไม่ต้องเขียนโค้ด เพียงระบุชุดคำค้นและตัวจัดลำดับข้อมูล แล้วมันจะจัดการส่วนที่เหลือให้
from rest_framework import viewsets
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializerแอตทริบิวต์สองรายการก็ทำงานได้
สองบรรทัดนี้รับผิดชอบทั้งคลาส queryset ระบุว่าแถวใดอยู่ในขอบเขตการทำงาน ส่วน serializer_class ระบุวิธีแปลงแถวเหล่านั้นเป็น JSON 📦
การดำเนินการที่มีให้พร้อม
ModelViewSet มีการดำเนินการห้ารายการ ได้แก่ list, create, retrieve, update, partial_update และ destroy คุณไม่ต้องเขียนรายการเหล่านี้ด้วยตนเองเลย
เหตุผลที่มีเราเตอร์
ViewSet รวมการดำเนินการไว้ด้วยกัน แต่ URL ยังต้องเชื่อมต่อให้ทำงาน เราเตอร์จะอ่าน ViewSet ของคุณและสร้างรูปแบบ URL ทุกแบบให้อัตโนมัติ
การลงทะเบียนด้วย DefaultRouter
สร้าง DefaultRouter ลงทะเบียน ViewSet ของคุณภายใต้คำนำหน้า แล้วระบบจะสร้างชุด URL ทั้งหมดให้
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'books', BookViewSet)นำ URL ของเราเตอร์มาเชื่อมต่อ
เราเตอร์จะแสดง router.urls ซึ่งเป็นรายการรูปแบบ URL ที่พร้อมใช้ เพียงเพิ่มรายการนี้ลงใน urlpatterns แล้วปลายทางก็จะพร้อมใช้งานทันที
urlpatterns = [
path('api/', include(router.urls)),
]URL ที่คุณเพิ่งสร้าง
การลงทะเบียน ViewSet หนึ่งรายการจะให้ /books/ สำหรับการแสดงรายการและการสร้างข้อมูล รวมถึง /books/{id}/ สำหรับการอ่าน อัปเดต และลบ 🚀
เมธอด HTTP เชื่อมกับการดำเนินการ
เราเตอร์จะจับคู่เมธอดกับการดำเนินการดังนี้: GET แสดงรายการ, POST สร้างข้อมูล, GET ที่มีรหัสจะอ่านข้อมูล, PUT หรือ PATCH อัปเดตข้อมูล และ DELETE ลบข้อมูล ViewSet เดียว รองรับพฤติกรรมหกแบบ
DefaultRouter กับ SimpleRouter
DefaultRouter เพิ่มมุมมองรากของเอพีไอที่แสดงรายการปลายทางให้ ส่วน SimpleRouter จะข้ามส่วนนี้เมื่อคุณต้องการชุด URL ที่กระชับกว่า
เพิ่มการดำเนินการแบบกำหนดเอง
ต้องการปลายทางเพิ่มเติมหรือไม่ ตัวตกแต่ง @action จะเพิ่มเส้นทางแบบกำหนดเองให้ ViewSet โดยไม่ต้องนำออกจากคลาส
from rest_framework.decorators import action
@action(detail=True, methods=['post'])
def favorite(self, request, pk=None):
...ตรวจสอบอย่างรวดเร็ว
มาทบทวนให้เข้าใจอย่างมั่นคงว่า ViewSet และเราเตอร์ทำงานร่วมกันอย่างไร
สรุป: CRUD ในไม่กี่บรรทัด
คุณได้เรียนรู้ว่า ModelViewSet และเราเตอร์เปลี่ยนคลาสสั้น ๆ สองคลาสให้เป็นเอพีไอ CRUD ที่สมบูรณ์ พร้อม URL ที่เป็นระเบียบซึ่งระบบสร้างให้คุณ ทำได้ดีมาก! 🎉
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “ModelViewSet และเราเตอร์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ModelViewSet และเราเตอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ModelViewSet และเราเตอร์”
สร้างเส้นทาง CRUD โดยอัตโนมัติ คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ModelViewSet และเราเตอร์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม
ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ModelViewSet และเราเตอร์
- สิทธิ์และการจำกัดความถี่
- การยืนยันตัวตนด้วยโทเค็นและ JWT
- การกรอง การค้นหา และการแบ่งหน้า