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

render_template และโฟลเดอร์ templates

ส่งคืนไฟล์ HTML แทนสตริง

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

จากสตริงสู่หน้าเว็บ

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

render_template ทำอะไร

render_template ค้นหาไฟล์ HTML ประมวลผลผ่านเครื่องมือสร้างแม่แบบ และส่งคืนหน้าเว็บที่สร้างเสร็จแล้วเป็นเนื้อหาของคำตอบ

from flask import render_template

@app.route('/')
def home():
    return render_template('index.html')

โฟลเดอร์แม่แบบ

Flask จะค้นหา HTML ในโฟลเดอร์ชื่อ templates ซึ่งอยู่ถัดจากไฟล์แอปของคุณ วาง index.html ไว้ที่นั่น แล้ว Flask จะค้นหาให้โดยอัตโนมัติ 📁

myapp/
  app.py
  templates/
    index.html

เหตุผลที่ใช้ชื่อคงที่

ชื่อ templates เป็นแบบแผน ไม่ใช่การคาดเดา Flask รู้ว่าต้องค้นหาที่ใด คุณจึงไม่ต้องเขียนเส้นทางโฟลเดอร์ไว้ใน render_template

อ้างอิงเฉพาะชื่อไฟล์

คุณส่งเฉพาะชื่อไฟล์ ไม่ใช่เส้นทางแบบเต็ม Flask จะนำชื่อดังกล่าวไปต่อกับโฟลเดอร์ templates ให้ ทำให้โค้ดสั้นและย้ายไปใช้ที่อื่นได้ง่าย

return render_template('about.html')

โฟลเดอร์ย่อยภายใน templates

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

return render_template('users/profile.html')

แม่แบบแบบง่ายที่สุด

โดยพื้นฐานแล้วแม่แบบก็คือ HTML ทั่วไป แม่แบบที่ง่ายที่สุดเป็นเพียงหน้าเว็บปกติที่ยังไม่มีไวยากรณ์พิเศษ

<!doctype html>
<title>Home</title>
<h1>Welcome</h1>

แม่แบบจะถูกเรนเดอร์

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

ส่งคืนผลลัพธ์

render_template ส่งคืน สตริง HTML ซึ่งคุณส่งคืนจากวิวของคุณ Flask จะห่อหุ้มสตริงนี้เป็นคำตอบที่ถูกต้องพร้อมชนิดเนื้อหาที่เหมาะสม

@app.route('/')
def home():
    return render_template('index.html')

ข้อผิดพลาด TemplateNotFound

หาก Flask หาไฟล์ไม่พบ คุณจะได้รับข้อผิดพลาด TemplateNotFound ให้ตรวจสอบการสะกดและตรวจดูว่าไฟล์อยู่ภายใน templates จริง

แยกตรรกะออกจากมาร์กอัป

แม่แบบช่วยแยก HTML ออกจาก Python วิวจัดการตรรกะ ส่วนแม่แบบจัดการการนำเสนอ การแยกนี้ทำให้ทั้งสองส่วนอ่านได้ง่ายขึ้นมาก

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

โดยค่าเริ่มต้น Flask คาดหวังให้ไฟล์ HTML อยู่ที่ใด

ทบทวน

คุณเรียนรู้ว่า render_template ให้บริการ HTML จากโฟลเดอร์ templates โดยใช้ชื่อไฟล์ ทำให้ตรรกะอยู่ใน Python และมาร์กอัปอยู่ในไฟล์ ทำได้ดีมาก! 🎉

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

บทเรียน “render_template และโฟลเดอร์ templates” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “render_template และโฟลเดอร์ templates”

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

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

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

บทเรียน “render_template และโฟลเดอร์ templates” ใช้เวลานานแค่ไหน

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

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

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

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

  1. render_template และโฟลเดอร์ templates
  2. ส่งข้อมูลเข้าเทมเพลต
  3. ลูปและเงื่อนไขของ Jinja2
  4. การหลีกอักขระอัตโนมัติและตัวกรอง safe
← กลับไปที่ Flask Academy