Flask Academy · บทเรียน

เขียนฟังก์ชัน create_app

สร้างและกำหนดค่าแอปภายในโรงงาน

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

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

ทำความรู้จักโรงงาน

โรงงานสร้างแอปเป็นเพียงฟังก์ชันชื่อ create_app ที่สร้างแอป Flask ใหม่ ตั้งค่าแอป แล้วคืนค่าแอปนั้น ไม่ต้องใช้ตัวแปรส่วนกลาง 🏭

โรงงานที่เล็กที่สุด

หัวใจสำคัญคือ create_app สร้างแอปภายในส่วนเนื้อความของฟังก์ชันแล้วคืนค่า ทุกอย่างที่เคยทำในระดับมอดูลจะย้ายมาอยู่ที่นี่

def create_app():
    app = Flask(__name__)
    return app

ตัวแปรเฉพาะที่ ไม่ใช่ส่วนกลาง

สังเกตว่า app ตอนนี้อยู่ในรูปตัวแปรเฉพาะที่ การเรียกใช้แต่ละครั้งจะสร้างอินสแตนซ์ใหม่เอี่ยม จึงไม่มีสิ่งใดรั่วไหลระหว่างการทดสอบหรือสภาพแวดล้อม

ตั้งค่าภายในฟังก์ชัน

กำหนดการตั้งค่าให้แอปเฉพาะที่ก่อนคืนค่า วิธีที่ใช้กันทั่วไปคือ app.config.from_object เพื่อโหลดคลาสการตั้งค่า

def create_app():
    app = Flask(__name__)
    app.config.from_object("config.Dev")
    return app

รับอาร์กิวเมนต์การตั้งค่า

ทำให้โรงงานยืดหยุ่นด้วยการรับพารามิเตอร์ config ส่งการตั้งค่าสำหรับการพัฒนา การทดสอบ หรือการใช้งานจริงตามวิธีเปิดใช้แอป

def create_app(config_class):
    app = Flask(__name__)
    app.config.from_object(config_class)
    return app

ลงทะเบียนเส้นทางภายใน

กำหนดหรือนำเข้าเส้นทางภายใน create_app เพื่อให้เส้นทางเหล่านั้นผูกกับอินสแตนซ์เฉพาะนี้ ไม่ใช่ส่วนกลางที่ใช้ร่วมกัน

def create_app():
    app = Flask(__name__)
    @app.route("/")
    def home():
        return "Hi"
    return app

ควรวางไว้ที่ใด

วาง create_app ไว้ในส่วนเริ่มต้นของแพ็กเกจ เช่น app/__init__.py จากนั้นโค้ดที่นำเข้าจะเรียกโรงงานแทนการดึงส่วนกลาง

Flask ค้นหามันอย่างไร

เซิร์ฟเวอร์สำหรับการพัฒนาจะค้นหาสิ่งที่เรียกใช้ได้และชื่อว่า create_app โดยอัตโนมัติ โดยปกติการกำหนด FLASK_APP ให้ชี้ไปยังแพ็กเกจก็เพียงพอสำหรับการเริ่มทำงาน

FLASK_APP=app flask run

จุดเริ่มต้น WSGI

สำหรับเซิร์ฟเวอร์ที่ใช้งานจริง ให้เปิดเผยอินสแตนซ์หนึ่งตัวโดยเรียกโรงงานหนึ่งครั้งในโมดูลขนาดเล็กชื่อ wsgi.py

from app import create_app
app = create_app()

การทดสอบเป็นเรื่องง่าย

การทดสอบเพียงเรียก create_app พร้อมการกำหนดค่าสำหรับการทดสอบ และได้รับแอปที่แยกเป็นอิสระใหม่ทุกครั้ง ไม่มีสถานะร่วมและไม่มีเรื่องไม่คาดคิด ✅

app = create_app("config.Test")

มุ่งเน้นให้ชัดเจน

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

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

ฟังก์ชันโรงงาน create_app ส่งคืนอะไร

ทบทวน

คุณได้เขียน create_app ซึ่งเป็นฟังก์ชันที่สร้าง กำหนดค่า และส่งคืนแอป Flask ใหม่ ฟังก์ชันนี้มาแทนส่วนกลาง และทำให้การกำหนดค่ากับการทดสอบเป็นเรื่องง่าย 🎯

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

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

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

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

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

บทเรียน “เขียนฟังก์ชัน create_app” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “เขียนฟังก์ชัน create_app”

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

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

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

บทเรียน “เขียนฟังก์ชัน create_app” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ปัญหาของออบเจ็กต์แอปส่วนกลาง
  2. เขียนฟังก์ชัน create_app
  3. เริ่มต้นส่วนขยายด้วย init_app
  4. ลงทะเบียน Blueprints ในโรงงาน
← กลับไปที่ Flask Academy