Template ها در پایتون

سلام . میخواستم بدونم Template ها در پایتون چی هستند؟ میشه ی مختصر توضیح بدید.

حقیقت امر اینه که اکثر چیزهایی که دیدم انگلیسی بودند. خودم هم انگلیسی پیدا میکنم. ولی قبلش باید ی مختصر در موردش بدونم. تا بهتر بتونم مطالب انگلیسی رو درک کنم.

https://docs.djangoproject.com/en/1.7/topics/templates/

خوب. اول باید اینو بگم که تمپلیت یه کلمه مربوط به طراحی وبسایت میشه و ربطی به زبان برنامه نویسی پایتون نداره. مربوط به فریموورک django میشه (یا فریموورکهای مشابه)

کل داستان مربوط به MVC یا همون Model View Controller هست که یه معماری در طراحی سایته. یا به زبان دیگه MVT یا همون Model View Template (یکی هستن، فقط اسمشون فرق میکنه و البته معنی این کلمات جا به جا هست)

اینکه چرا از معماری mvt استفاده میکنیم، به خاطر اینه که توسعه‌ی پروژمون اصولی باشه و به هم ریختگی کمتری داشته باشیم.
مثلا ما میتونیم با یه اسکریپت پایتون، بدون نیاز به هیچ معماری خاصی، یه وبسایت ساده‌ی ۱-۲ صفحه‌ای بسازیم و تمام تگ‌های html که قراره به کاربر نشون داده بشه رو همونجا به صورت یک string بسازیم و آخرش به کاربر return کنیم.
یا میتونیم لاجیک نرم‌افزارمون (M در MVC یا V در MVT) رو توی یک اسکریپت داشته باشیم که با بخش دیتابیس (C در MVC یا M در MVT) در ارتباط باشه و با این اطلاعات، تگهای html (یعنی V در MVC یا T در VMT) رو رندر بگیره.

ما در حقیقت کدهامون رو ۳ قسمت میکنیم که مدیریت کردنشون برای خودمون راحتتر (و امکان‌پذیر) باشه. اگه غیر از این باشه، نمیشه پروژه‌ی بزرگ انجام داد.


حالا ما یه سری template engine داریم توی پایتون، یکیشون jinja2 هست که django ازش استفاده میکنه.
شکل کلیش شبیه فایل html معمولی هست که یه سری تگ خاص به شکل {{ var }} داره.
وقتی میخوایم این فایل رو رندر بگیریم (از داخل view) توی کدمون یه سری متغیر بهش ارسال میکنیم که اینا توسط template engine پردازش میشن و فایل html نهایی ساخته میشه.

توی view:

render_template('index.html', var="Hello")

توی template:

<p class="message">{{ var }}</p>

خروجی توی بروزر:

<p class="message">Hello</p>
1 Like

مطالعه این مطلب خالی از لطف نخواهد بود :nerd_face:

1 Like

ممنون بابت توضیح خوبتون متوجه شدم دقیقا چی هست.