استفاده از Flask.register_blueprint() در Flask 3.0

flask register blueprint
20 آذر 1403

آشنایی با Flask و ثبت Blueprint ها


شاید تا به حال اسم Flask به گوشتون خورده باشه. Flask یک فریمورک وب برای زبان برنامه‌نویسی پایتون است که به خاطر سادگی و کارایی‌اش شناخته شده. یکی از ویژگی‌های جالب Flask اینه که می‌تونید پروژه‌های بزرگ رو به چندین قسمت کوچک‌تر تقسیم کنید و این کار به راحتی با استفاده از Blueprint ها انجام میشه. در واقع، Blueprint ها به شما کمک می‌کنن که قابلیت‌های مختلف وب‌اپلیکیشن‌تون رو سازماندهی و مدیریت کنید.


حالا شاید سوال این باشه که Blueprint دقیقا چی هست؟ یک Blueprint در Flask مانند یک الگو یا طرح داخلی هست که می‌تونید در چندین جا از اپلیکیشن‌تون استفاده کنید. به عبارت دیگه، با استفاده از Blueprint می‌تونید بخش‌های مختلف اپلیکیشن خودتون رو به صورت ماژولار ساختاردهی کنید. به این ترتیب، وقتی اپلیکیشن‌تون بزرگتر میشه، راحت‌تر می‌تونید با ساختار کدها کار کنید و همچنین راحت‌تر قابلیت‌های جدید بهش اضافه کنید.


حالا برای اینکه از یک Blueprint استفاده کنید و اون رو ثبت کنید، شما به تابع register_blueprint() نیاز دارید. این تابع به شما این امکان رو میده که یک Blueprint رو به اپلیکیشن اصلی Flask ثبت کنید. این ثبت به شما این امکان رو میده که روت‌ها و سایر ویژگی‌های Blueprint رو به اپلیکیشن اضافه کنید.


بیایید نگاهی به کد زیر بندازیم که صریح و روشن این روند رو نشون میده. در این مثال، ما یک اپلیکیشن Flask ساده رو با استفاده از یک Blueprint گسترش می‌دیم و می‌بینیم چطور می‌تونیم از register_blueprint() استفاده کنیم.


from flask import Flask, Blueprint

# تعریف یک Blueprint
my_blueprint = Blueprint('my_blueprint', __name__)

@my_blueprint.route('/hello')
def hello():
return "سلام از Blueprint!"

# ایجاد اپلیکیشن Flask
app = Flask(__name__)

# ثبت Blueprint در اپلیکیشن
app.register_blueprint(my_blueprint)

if __name__ == '__main__':
app.run(debug=True)

تحلیل کد


کد 1: from flask import Flask, Blueprint
در این خط، ما Flask و Blueprint رو از کتابخانه Flask import می‌کنیم.


کد 2: my_blueprint = Blueprint('my_blueprint', __name__)
در اینجا ما یک Blueprint به نام my_blueprint تعریف می‌کنیم. __name__ به Flask می‌گه این Blueprint مربوط به کد فعلی هست.


کد 3: @my_blueprint.route('/hello')
این خط یک روت جدید /hello به my_blueprint اضافه می‌کنه.


کد 4: def hello(): return "سلام از Blueprint!"
اینجا یک تابع به نام hello داریم که وقتی به روت /hello مراجعه می‌کنید، عبارت "سلام از Blueprint!" رو برمی‌گردونه.


کد 5: app = Flask(__name__)
در اینجا ما یک اپلیکیشن Flask جدید ایجاد می‌کنیم.


کد 6: app.register_blueprint(my_blueprint)
با این خط، ما my_blueprint رو به اپلیکیشن main اضافه می‌کنیم.


کد 7: if __name__ == '__main__': app.run(debug=True)
این خط باعث میشه که اپلیکیشن در حال توسعه اجرا بشه.


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

؟

Blueprint چیه و چرا باید ازش استفاده کنیم؟

؟

چطوری می‌تونم یک Blueprint جدید ایجاد کنم؟

؟

ثبت یک Blueprint در اپلیکیشن چطور انجام میشه؟

؟

چطور می‌تونم روت‌ها رو داخل Blueprint تعریف کنم؟