بهترین راه برای داشتن وب اپلیکیشنی که به سادگی قابل نگهداری و توسعه باشد آن است که تمیز و ساختارمند کد زده شده باشد. اگر به نحوه ی کدهایی که تا اینجا در توابع خود که مسئول پاسخگویی به درخواست های مختلف هستن، توجه کرده باشید متوجه می شوید که این کدها یک مشکل اساسی دارند. 


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

به طور مثال کاربری را در نظر بگیرید که قصد دارد یک اکانت جدید روی وب سایت ما ایجاد نماید. کاربر آدرس ایمیل و رمز عبور خود را داخل فرم وارد کرده و دکمه ارسال را می زند. حال سمت وب سرور این درخواست به همراه اطلاعات وارد شده از سمت کاربر به فلاسک می رسد و فلاسک تابع مسئول پاسخگویی به آن درخواست را صدا می زند. حال این تابع باید با پایگاه داده ارتباط برقرار کرده و اطلاعات کاربر جدید را ذخیره کرده و پاسخ مناسب را به سوی کاربر ارسال نماید. همانطور که مشاهده می نمایید اینجا دو منطق کاملا مجزا موجود است :


۱. منطق بیزینس

۲. منطق ارائه


اگر بخواهیم این دو منطق را در یک نگاه در نظر بگیریم کد ما ساختارمندی خود را از دست داده و قابلیت فهم آن کاسته می شود. بدین منظور ما در فلاسک مفهومی به نام قالب داریم که وظیفه پیاده سازی منطق ارائه ی وب اپلیکیشن ما را بر عهده می گیرد. 


بطور خلاصه یک قالب شامل متنی از پاسخ به یک درخواست است که شامل متغییرهایی می شود که بخش های پویای پاسخ را در بر می گیرند. در واقع تابعی که مسئولیت پاسخگویی به درخواست ارسال شده به سمت وب سرور را دارد با استفاده از این قالب پاسخی را آماده می کند که ما آن را rendering می نامیم. برای انجام عملیات rendering در فلاسک ما از یک موتور به نام jinja2 استفاده می کنیم.