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

แคชมุมมองด้วย cached

จดจำการตอบกลับทั้งหมดตาม URL

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

แคชการตอบกลับทั้งหมด

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

ใช้ตัวตกแต่ง

เพิ่ม @cache.cached() ไว้เหนือฟังก์ชันมุมมองของคุณโดยตรง คำขอแรกจะเรียกใช้ฟังก์ชัน ส่วนคำขอถัดไปจะนำผลลัพธ์ที่เก็บไว้มาใช้ซ้ำ

@app.route("/report")
@cache.cached()
def report():
    return build_report()

ลำดับของตัวตกแต่ง

การเรียงซ้อนมีความสำคัญ วาง @app.route ไว้ด้านบน และ @cache.cached ไว้ด้านล่าง เพื่อให้การกำหนดเส้นทางเกิดขึ้นก่อนเริ่มแคช

กำหนดเวลาหมดอายุแยกสำหรับแต่ละมุมมอง

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

@cache.cached(timeout=60)
def report():
    ...

แคชตามเส้นทางคำขอ

โดยค่าเริ่มต้น คีย์แคชคือเส้นทางคำขอ ดังนั้น /report และ /report/extra จึงถูกเก็บเป็นรายการแยกจากกันโดยอิสระ

ไม่สนใจสตริงคำค้น

โปรดระวัง: คีย์เริ่มต้นจะข้ามสตริงคำค้น ดังนั้น /list?page=2 และ /list?page=3 จะใช้รายการแคชเดียวกัน

แยกตาม URL แบบเต็ม

หากต้องการแยกตามสตริงคำค้น ให้กำหนด query_string=True จากนั้น URL ที่ไม่ซ้ำกันแต่ละรายการ รวมถึงพารามิเตอร์ จะได้รับการตอบกลับที่แคชไว้ของตนเอง

@cache.cached(query_string=True)
def listing():
    ...

คีย์แคชแบบกำหนดเอง

ต้องการควบคุมทั้งหมดใช่ไหม ให้ส่งฟังก์ชัน make_cache_key ที่สร้างคีย์ด้วยตนเอง เช่น ผนวกผู้ใช้ปัจจุบันเข้าไป

@cache.cached(make_cache_key=my_key)

แคชเฉพาะเมธอดที่ปลอดภัย

แคชคำขอ GET แต่อย่าแคช POST การแคชการเขียนจะนำเนื้อหาเก่ากลับมาใช้ซ้ำ และข้ามผลข้างเคียงที่ผู้ใช้คาดหวัง

ข้ามแคชเมื่อจำเป็น

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

@cache.cached(unless=lambda: g.user)

การเรียกครั้งแรกกับครั้งถัดไป

คำขอแรกเป็นแคชพลาดและจะทำงานจริง คำขอถัดมาทุกคำขอภายในเวลาหมดอายุจะเป็นการพบแคชที่รวดเร็ว

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

หน้ารายการของคุณใช้ ?page= แต่ทุกหน้ากลับแสดงเนื้อหาที่แคชไว้เหมือนกัน

สรุป: การแคชมุมมอง

คุณได้เรียนรู้การห่อมุมมองด้วย @cache.cached การปรับเวลาหมดอายุ การใช้ URL แบบเต็มเป็นคีย์ และการข้ามแคชสำหรับการเขียน 🚀

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

บทเรียน “แคชมุมมองด้วย cached” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แคชมุมมองด้วย cached”

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

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

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

บทเรียน “แคชมุมมองด้วย cached” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ตั้งค่า Flask-Caching
  2. แคชมุมมองด้วย cached
  3. จดจำฟังก์ชันที่ใช้ทรัพยากรมาก
  4. ทำให้รายการแคชใช้ไม่ได้และหมดอายุ
← กลับไปที่ Flask Academy