เขียนฟังก์ชัน create_app
สร้างและกำหนดค่าแอปภายในโรงงาน
เขียนฟังก์ชัน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ปัญหาของออบเจ็กต์แอปส่วนกลาง
- เขียนฟังก์ชัน create_app
- เริ่มต้นส่วนขยายด้วย init_app
- ลงทะเบียน Blueprints ในโรงงาน