Flask এর ৩য় পর্বে আপনাকে স্বাগতম।আজকে আমরা Flask এর Template শিখবো।এর আগে আমরা Flask দিয়ে route বানানো শিখেছিলাম।এক্ষেত্রে আমরা যেকোনো text response আকারে send করতে পারতাম।তবে আমরা যদি কোনো html পেজ send করতে চাই এর জন্য আমাদের প্রয়োজন হবে template এর।Flask এ যেই template engine use করা হয় সেটির নাম হচ্ছে jinja, চলুন জেনে নেয়া যাক কীভাবে template use করবেন।
-প্রথমেই flask থেকে render_template নামের function টি import করতে হবে
from flask import Flask,render_template
-এখন আমরা যেই html গুলো template হিসেবে ব্যবহার করবো সেগুলো templates নামের একটি folder এ রাখতে হবে।আপনার flask app এর python file টি যেই directory তে থাকবে সেখানেই templates নামে folder টি তৈরি করতে হবে।এখানে আমি index.html নামের একটি html file বানাবো।এখন এই template ব্যবহার করতে হলে একটি route তৈরি করতে হবে এবং return করার সময় আমরা render_template function টি ব্যবহার করবো।
@app.route('/') def index(): return render_template('index.html')
এখন / route এ index.html show করবে।
কীভাবে template এ argument pass করবেন?
আমরা চাইলে template এ যেকোনো argument pass করাতে পারবো।যেমন:- আপনি যদি database থেকে কারো তথ্য নেন এবং সেটি template এ show করাতে চান তাহলে সেটি করতে পারবেন।
@app.route('/') def index(): return render_template('index.html',name="Rahim")
এখানে আমি argument হিসেবে name pass করেছি।আপনারা যেকোনো কিছু এভাবে পাঠাতে পারবেন।এবার এই name html এর যেখানে দেখতে চাই সেখানে {{ name }} লিখতে হবে।(আপনি যেই নামের argument pass করবেন সেটি এভাবে লিখতে হবে)
<h1>{{name}}</h1>
Output:
কীভাবে condition use করবেন?
আমাদের অনেক সময় condition use করার প্রয়োজন পড়ে।যেমন:- আপনি চান কিছু blog post show করাতে কিন্তু যদি database কোনো post না থাকে সেক্ষেত্রে আপনি no post available দেখাতে চান।এর জন্য আপনাকে condition ব্যবহার করতে হবে।এটি করার জন্য {% if [condition] %} লিখে যা লিখবেন তা condition true হলে দেখাবে।আর {% else %} লিখে যা লিখবেন তা condition false হলে দেখাবে।এবং এভাবে if else লিখা হয়ে গেলে লিখতে হবে {% endif %}
Example:
{% if name == "Rahim" %} <h1>You are Rahim</h1> {% else %} <h1>You are not Rahim</h1> {% endif %}
কীভাবে for loop use করবেন?
ধরুন আপনার কাছে একটি array আছে এবং আপনি সেগুলো serial wise দেখাতে চান এজন্য প্রয়োজন হবে for loop এর।এটিও অনেকটা if else এর মত।এখানে {% %} এর ভেতর for loop টি লিখতে হবে এবং শেষে {% endfor %} লিখতে হবে।
এখন আমরা একটি array pass করবো
@app.route('/') def index(): return render_template('index.html',nums=[1,2,3])
এখন সব item গুলো একটি h1 ট্যাগ এ show করাতে লিখবো
{% for num in nums %} <h1>{{num}}</h1> {% endfor %}
Output:
এভাবে আমরা for loop use করবো।
আজ এ পর্যন্তই।next পর্বে আমরা template extend করা শিখবো
বিভিন্ন Tips and Tricks পেতে Join করুন: t.me/techztricks