آشنایی با Flask 3.0 و نحوه استفاده از flask.cli ScriptInfo.load_app()

flask 3 flask cli scriptinfo load app
20 آبان 1403

در دنیای توسعهٔ وب، وقتی صحبت از فریمورک‌های می‌شود که بتوان با سرعت و کارایی بالا برنامه‌ها را پیاده‌سازی کرد، بدون شک Flask یکی از آنهاست.

Flask 3.0، آخرین نسخه از این فریمورک قدرتمند، قابلیت‌های جدید و هیجان‌انگیزی به ارمغان آورده است. یکی از ویژگی‌های جدید و جالب معرفی‌شده در این نسخه، استفاده از کلاس flask.cli.ScriptInfo.load_app() می‌باشد. این ویژگی به توسعه‌دهندگان کمک می‌کند تا برنامه‌های خود را به شیوه‌ای ساده‌تر و کاراتر بارگذاری کنند.

این متد، اساساً به شما اجازه می‌دهد تا هنگام استفاده از ابزار خط فرمان Flask، برنامهٔ مورد نظر خود را بارگذاری کنید بدون اینکه نیاز باشد هر بار به طور دستی آن را تنظیم کنید. با این کار، ساختن و آزمایش برنامه‌ها و اسکریپت‌های جانبی بسیار آسان‌تر می‌شود.

به عنوان مثال، فرض کنید برنامه‌ای دارید که شامل فایل‌های پیکربندی مختلفی است و شما نیاز دارید هنگام تست یا ران کردن آن، برنامه به درستی بارگذاری شود. متد load_app() دقیقاً برای این سناریو طراحی شده است تا تجربهٔ کاربری بهتری را ارائه دهد.

در ادامه، به بررسی نحوه استفاده از این متد و مثال‌هایی از کاربرد آن می‌پردازیم که می‌تواند در پروژه‌های واقعی شما کاربردی باشد.

نحوه استفاده از ScriptInfo.load_app()

from flask import Flask
from flask.cli import ScriptInfo

def create_app():
# ایجاد یک نمونهٔ برنامه Flask
app = Flask(__name__)

# پیکربندی برنامه
app.config.from_pyfile('config.py')

# ثبت بلوپرینت‌ها، افزونه‌ها و غیره
#...

return app

# استفاده از ScriptInfo برای بارگذاری برنامه
info = ScriptInfo(create_app=create_app)
loaded_app = info.load_app()
print(f'Loaded app: {loaded_app.name}')

توضیح خط به خط کد

from flask import Flask
ایمپورت کردن کلاس اصلی Flask برای ایجاد یک اپلیکیشن جدید.
from flask.cli import ScriptInfo
ایمپورت کردن کلاس ScriptInfo، که برای مدیریت اسکریپت‌ها استفاده می‌شود.
def create_app()
تعریف یک تابع برای ایجاد و پیکربندی برنامهٔ Flask شما.
app = Flask(__name__)
ایجاد یک نمونهٔ جدید از برنامهٔ Flask با استفاده از نام ماژول فعلی.
app.config.from_pyfile('config.py')
بارگذاری تنظیمات اپلیکیشن از یک فایل تنظیمات پایتون.
info = ScriptInfo(create_app=create_app)
ایجاد یک نمونهٔ ScriptInfo با استفاده از تابع create_app.
loaded_app = info.load_app()
بارگذاری اپلیکیشن از طریق متد load_app.
print(f'Loaded app: {loaded_app.name}')
چاپ نام اپلیکیشن بارگذاری‌شده برای تأیید.

سوالات متداول

؟

چگونه می‌توانم از ScriptInfo.load_app() در پروژه خود استفاده کنم؟

؟

آیا می‌توانم با ScriptInfo چندین تنظیمات پیکربندی برای اپلیکیشن‌های مختلف داشته باشم؟