Django Academy · บทเรียน

จับพารามิเตอร์จาก URL

อ่านตัวแปลงเส้นทางอย่าง int และ slug ในวิว

บทเรียน 3 จาก 413 ขั้นตอน

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

เหตุผลที่ต้องจับพารามิเตอร์

หลายหน้าขึ้นอยู่กับค่าใน URL เช่น รหัสสินค้า Django ให้คุณ จับค่า นั้นและส่งตรงไปยังมุมมองได้

ไวยากรณ์วงเล็บแหลม

คุณจับส่วนหนึ่งของ URL ได้ด้วย วงเล็บแหลม สิ่งที่อยู่ภายในจะกลายเป็นอาร์กิวเมนต์ที่มีชื่อสำหรับมุมมอง

path('post/<int:id>/', views.detail)

ตัวแปลงกำหนดชนิดข้อมูล

คำก่อนเครื่องหมายโคลอนคือตัว แปลง ซึ่งทั้งจับคู่รูปแบบและแปลงข้อความที่จับได้ให้เป็นชนิดข้อมูล Python ที่ถูกต้อง

ตัวแปลง int

ตัวแปลง int จับคู่ตัวเลขและส่งจำนวนเต็มจริงให้มุมมอง ไม่ใช่สตริง เหมาะอย่างยิ่งสำหรับรหัสตัวเลข

path('post/<int:id>/', views.detail)

ตัวแปลง slug

ตัวแปลง slug จับคู่ตัวอักษร ตัวเลข ยัติภังค์ และขีดล่าง เหมาะสำหรับ URL ที่อ่านง่ายและเป็นมิตรต่อ SEO

path('blog/<slug:title>/', views.post)

มุมมองได้รับค่า

ชื่อที่จับได้จะกลายเป็น พารามิเตอร์ ในมุมมองของคุณ ถัดจาก request โดยตรง ชื่อต่าง ๆ ต้องตรงกันทุกประการ

def detail(request, id):
    return HttpResponse('Post ' + str(id))

ชื่อต้องตรงกัน

ชื่อใน URL และอาร์กิวเมนต์ของมุมมองต้อง เหมือนกันทุกประการ หาก URL ระบุว่า id มุมมองของคุณก็ต้องรับ id เช่นกัน

ตัวแปลงที่มีมาให้เพิ่มเติม

นอกจาก int และ slug แล้ว Django ยังมีตัวแปลง str, uuid และ path ให้ใช้ แต่ละตัวจับคู่รูปแบบค่าที่แตกต่างกัน

str เป็นค่าเริ่มต้น

หากไม่ระบุตัวแปลง Django จะใช้ str โดยจะจับคู่ข้อความใด ๆ ยกเว้นเครื่องหมายทับ ซึ่งช่วยแยกแต่ละส่วนออกจากกัน

path('user/<username>/', views.profile)

การจับค่าหลายค่า

คุณสามารถจับค่า หลายค่า ในเส้นทางเดียวได้ แต่ละค่าจะกลายเป็นอาร์กิวเมนต์คีย์เวิร์ดของตัวเองในมุมมองตามลำดับ

path('<int:year>/<int:month>/', views.archive)

ชนิดไม่ถูกต้อง จึงไม่ตรงกัน

หากค่า URL ไม่เข้ากับตัว แปลง เส้นทางนั้นจะไม่ตรงกัน Django จะลองเส้นทางถัดไปหรือส่งคืน 404

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

ลองพิจารณาว่าตัวแปลงใดเหมาะกับ id ที่เป็นตัวเลข

สรุป: URL แบบไดนามิก

ใช้ วงเล็บแหลม ร่วมกับตัวแปลงเพื่อจับค่าใน URL มุมมองจะได้รับค่าตามชื่อ โดยมีชนิดข้อมูลถูกต้องและพร้อมใช้งาน ✨

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

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

บทเรียน “จับพารามิเตอร์จาก URL” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “จับพารามิเตอร์จาก URL”

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

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

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

บทเรียน “จับพารามิเตอร์จาก URL” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เขียนวิวแบบฟังก์ชัน
  2. รูปแบบ URL ด้วย path()
  3. จับพารามิเตอร์จาก URL
  4. รวม URL ของแอปและตั้งชื่อเส้นทาง
← กลับไปที่ Django Academy