راهنمایی درباره Blueprint.template_folder در Flask 3.0

flask 3.0 blueprint template folder
11 آذر 1403



مقدمه‌ای بر Flask و Blueprints


فلسک یک فریم‌ورک وب بسیار محبوب در پایتون است که به علت سادگی و قابلیت انعطاف‌پذیری‌اش بسیار مورد توجه قرار گرفته است. یکی از ویژگی‌های کلیدی فلسک که باعث می‌شود توسعه‌دهندگان بتوانند برنامه‌های پیچیده و در عین حال ساختارمند ایجاد کنند، قابلیت استفاده از Blueprints است. Blueprints به شما اجازه می‌دهد که کد خود را ماژولار و قابل نگهداری تقسیم کنید که این امر مخصوصا در پروژه‌های بزرگ بسیار کاربردی است. در نسخه ۳.۰ فلسک، با بهبود‌هایی در Blueprints روبرو می‌شویم که استفاده از آن‌ها را حتی ساده‌تر و بهینه‌تر نموده‌اند.



نقش template_folder در Blueprint


در فلسک، معمولاً با استفاده از قالب‌ها، صفحات وب تولید می‌کنیم. در پروژه‌های بزرگ، نگهداری و ساختاردهی این قالب‌ها اهمیت زیادی دارد. Blueprints با قابلیت template_folder خود، به شما این امکان را می‌دهد که قالب‌های مرتبط با یک بخش خاص از برنامه‌تان را به طور منظم ذخیره کنید. این قابلیت در سازماندهی بهتر پروژه و جلوگیری از تداخل فایل‌ها نقش کلیدی دارد.



چگونه از template_folder استفاده کنیم؟


برای استفاده از این قابلیت، شما می‌توانید با مشخص کردن نام پوشه‌ای که قالب‌هایتان در آن قرار دارد، آن را به Blueprint اختصاص دهید. این عمل به فلسک می‌گوید که برای جستجوی قالب‌ها به این پوشه برود. استفاده از template_folder می‌تواند به جداسازی بهتر منطق کاربری و نمایشی در برنامه شما کمک کند.



نمونه‌ای از کد



from flask import Blueprint, render_template

admin_bp = Blueprint('admin', __name__, template_folder='templates/admin')

@admin_bp.route('/dashboard')
def dashboard():
return render_template('dashboard.html')


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



from flask import Blueprint, render_template

این خط از فلسک blueprint و render_template را وارد می‌کند که برای ایجاد یک Blueprint و رندر کردن قالب‌ها به کار می‌روند.



admin_bp = Blueprint('admin', __name__, template_folder='templates/admin')

ما یک Blueprint تعریف می‌کنیم به نام 'admin' و پوشه‌ای به نام 'templates/admin' را به عنوان جایی که قالب‌ها در آن ذخیره می‌شوند معرفی می‌کنیم.



@admin_bp.route('/dashboard')

یک روت برای مسیر '/dashboard' تعریف می‌کنیم که وقتی کاربر به این مسیر وارد می‌شود، تابع dashboard را اجرا کند.



def dashboard():

تابعی تعریف می‌کنیم که درون آن کد مربوط به نمایش صفحه داشبورد نوشته شده است.



return render_template('dashboard.html')

این خط وظیفه رندر کردن قالب 'dashboard.html' را بر عهده دارد و نتیجه را به کاربر نشان می‌دهد.


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

؟

چرا از Blueprints در فلسک استفاده می‌کنیم؟

؟

چگونه می‌توان قالب‌ها را در فلسک جدا کرد؟

؟

آیا می‌توان از چندین template folder در یک Blueprint استفاده کرد؟