0Pricing
Django Academy · บทเรียน

จัดการเมธอด get และ post

กำหนดเส้นทาง HTTP verb ไปยังเมธอดของคลาส

จัดการเมธอด get และ post เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน

คำกริยากลายเป็นเมธอด

ใน CBV คำกริยา HTTP แต่ละคำจะจับคู่กับเมธอด คำขอ GET จะเรียกใช้เมธอด get ส่วนคำขอ POST จะเรียกใช้เมธอด post

สืบทอดจากมุมมองพื้นฐาน

หากต้องการควบคุมคำกริยาอย่างเต็มที่ ให้สืบทอดจากคลาส View พื้นฐาน จากนั้นกำหนดเฉพาะเมธอดที่ต้องการรองรับ

class ContactView(View):
    pass

กำหนดเมธอด get

เพิ่มเมธอด get เพื่อแสดงหน้า เช่น ฟอร์มติดต่อเปล่า เมธอดนี้รับ self และ request แล้วส่งคืนการตอบกลับ

def get(self, request):
    return render(request, "contact.html")

กำหนดเมธอด post

เพิ่มเมธอด post เพื่อจัดการข้อมูลที่ส่งมา Django จะนำคำขอ POST มายังเมธอดนี้โดยอัตโนมัติ

def post(self, request):
    name = request.POST.get("name")
    return redirect("thanks")

ไม่ต้องตรวจสอบ method อีกต่อไป

คุณไม่ต้องเขียน if request.method == "POST" อีกแล้ว Django จะเลือกใช้เมธอดที่ถูกต้องตามคำกริยาให้คุณ

dispatch นำทางคำขอ

เบื้องหลังจะมีเมธอดชื่อ dispatch ตรวจสอบคำกริยาและเรียกเมธอดที่ตรงกัน โดยทั่วไปคุณแทบไม่ต้องเรียกใช้เมธอดนี้โดยตรง

คำกริยาที่ไม่รองรับจะได้รหัส 405

หากคำขอใช้คำกริยาที่คุณไม่ได้กำหนด Django จะส่งคืน 405 Method Not Allowed โดยอัตโนมัติ จึงปลอดภัยตั้งแต่เริ่มต้น

ลำดับการทำงาน GET แล้ว POST แบบคลาสสิก

รูปแบบทั่วไปคือ get แสดงฟอร์ม ผู้ใช้ส่งฟอร์ม และ post ประมวลผลข้อมูล สองเมธอดในคลาสเดียวที่เป็นระเบียบ

เปลี่ยนเส้นทางหลัง POST

หลังจาก post ทำงานสำเร็จ ให้ส่งคืนการเปลี่ยนเส้นทางแทนการแสดงผล วิธีนี้ช่วยป้องกันการส่งข้อมูลซ้ำเมื่อรีเฟรช

แชร์สถานะผ่าน self

เมธอดทั้งสองอยู่ในคลาสเดียวกัน คุณจึงเก็บค่าที่ใช้ร่วมกันไว้ใน self หรือเรียกเมธอดช่วยเหลือที่คุณกำหนดเองได้

เชื่อมด้วย as_view

นำทางไปยังคลาสด้วย as_view() ตามรูปแบบปกติ Django จะสร้างตัวนำทางให้ และเมธอด get กับ post ของคุณจะทำงานได้ทันที

path("contact/", ContactView.as_view())

ตรวจสอบอย่างรวดเร็ว

จะเกิดอะไรขึ้นเมื่อส่ง POST ไปยัง CBV ที่กำหนดเฉพาะ get

ทบทวน: get และ post

คุณได้เห็นแล้วว่า CBV จับคู่คำกริยากับเมธอดอย่างไร: get ใช้แสดงผล post ใช้จัดการข้อมูล dispatch ใช้นำทาง และคำกริยาที่ไม่ได้กำหนดจะส่งคืนรหัส 405 ไม่ต้องตรวจสอบเมธอดด้วยตนเอง 🚦

คำถามที่พบบ่อย

บทเรียน “จัดการเมธอด get และ post” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “จัดการเมธอด get และ post” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “จัดการเมธอด get และ post”

กำหนดเส้นทาง HTTP verb ไปยังเมธอดของคลาส คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “จัดการเมธอด get และ post” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม

ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. จากวิวแบบฟังก์ชันสู่วิวแบบคลาส
  2. TemplateView และ get_context_data
  3. จัดการเมธอด get และ post
  4. มิกซ์อินและ as_view()
← กลับไปที่ Django Academy