TurboGears কি?
TurboGears একটি শক্তিশালী এবং অত্যন্ত সম্পূর্ণ Python Web Framework যা দ্রুত এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। এটি মডেল-ভিউ-কন্ট্রোলার (MVC) আর্কিটেকচার অনুসরণ করে এবং ডেটাবেস সংযোগ, রাউটিং, টেমপ্লেটিং এবং ফর্ম ভ্যালিডেশনসহ ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য প্রয়োজনীয় অনেক ফিচার সরবরাহ করে। TurboGears একটি "batteries-included" ফ্রেমওয়ার্ক, অর্থাৎ এটি সমস্ত মৌলিক ফিচার এবং সরঞ্জাম দেয় যা একটি পূর্ণাঙ্গ ওয়েব অ্যাপ্লিকেশন তৈরি করতে প্রয়োজন হয়।
TurboGears এর মূল বৈশিষ্ট্য:
- MVC আর্কিটেকচার: অ্যাপ্লিকেশন ডেভেলপমেন্টে স্পষ্ট পৃথকীকরণ।
- SQLAlchemy অথবা MongoDB এর মাধ্যমে ডেটাবেস ইন্টিগ্রেশন।
- Jinja2 টেমপ্লেটিং সিস্টেম।
- Formencode অথবা WTForms এর মাধ্যমে ফর্ম ভ্যালিডেশন।
- Web2py এর মত স্কেলেবিলিটি এবং দ্রুত ডেভেলপমেন্ট।
- Asynchronous Programming এর সমর্থন।
প্রথম TurboGears প্রজেক্ট তৈরি করা
TurboGears প্রজেক্ট তৈরি করতে আপনাকে প্রথমে TurboGears ফ্রেমওয়ার্ক ইনস্টল করতে হবে এবং কিছু মৌলিক স্টেপ অনুসরণ করতে হবে। এখানে ধাপে ধাপে একটি নতুন TurboGears প্রজেক্ট তৈরি করার পদ্ধতি দেওয়া হলো।
১. TurboGears ইনস্টলেশন
TurboGears ফ্রেমওয়ার্ক ইনস্টল করতে pip ব্যবহার করা হয়, যা Python এর প্যাকেজ ম্যানেজার। নিচের কমান্ডটি ব্যবহার করে TurboGears ইনস্টল করুন:
pip install TurboGears2
এই কমান্ডটি TurboGears এর প্রয়োজনীয় প্যাকেজ এবং ডিপেনডেন্সি ইনস্টল করবে।
২. প্রথম প্রজেক্ট তৈরি করা
TurboGears একটি নতুন প্রজেক্ট তৈরি করার জন্য একটি টেমপ্লেট সরবরাহ করে। tg-admin একটি কমান্ড লাইন টুল যা TurboGears প্রজেক্ট তৈরিতে সহায়তা করে। নিচের কমান্ডটি ব্যবহার করুন:
tg-admin quickstart myproject
এই কমান্ডটি একটি নতুন myproject নামক প্রজেক্ট তৈরি করবে এবং আপনাকে কিছু প্রশ্নের উত্তর দিতে হবে, যেমন ডেটাবেসের ধরন, টেমপ্লেটিং ইঞ্জিন ইত্যাদি।
উত্তরের পরে একটি নতুন ডিরেক্টরি তৈরি হবে যেখানে আপনার TurboGears প্রজেক্টের সমস্ত ফাইল থাকবে।
৩. প্রজেক্ট স্ট্রাকচার
TurboGears প্রজেক্টে সাধারণত কিছু ফোল্ডার এবং ফাইল থাকে। নিচে একটি সাধারণ প্রজেক্ট স্ট্রাকচার দেওয়া হলো:
myproject/
├── app/
│ ├── __init__.py
│ ├── controllers/
│ ├── model/
│ └── templates/
├── config/
│ ├── app_cfg.py
│ └── staging.ini
├── public/
│ ├── css/
│ ├── js/
│ └── images/
└── setup.py
- app/: আপনার অ্যাপ্লিকেশন কোডের জন্য ডিরেক্টরি।
- controllers/: অ্যাপ্লিকেশন লজিকের জন্য কোড।
- model/: ডেটাবেস মডেল এবং ORM (Object-Relational Mapping)।
- templates/: টেমপ্লেট ফাইল যেখানে HTML টেমপ্লেটগুলি থাকে।
- config/: অ্যাপ্লিকেশনের কনফিগারেশন ফাইল।
- public/: স্ট্যাটিক ফাইল যেমন CSS, JavaScript, এবং ইমেজ।
- setup.py: প্যাকেজ ইনস্টলেশন স্ক্রিপ্ট।
৪. প্রথম Controller তৈরি করা
TurboGears-এ controller হল কোডের একটি অংশ যা রাউটিং এবং অ্যাপ্লিকেশনের লজিক পরিচালনা করে। app/controllers/ ফোল্ডারে একটি নতুন controller তৈরি করা যায়।
# app/controllers/root.py
from tg import expose
from myproject.lib.base import BaseController
class RootController(BaseController):
@expose('myproject.templates.index')
def index(self):
return dict(message="Hello, TurboGears!")
এখানে, RootController একটি controller ক্লাস যা একটি index মেথড সরবরাহ করছে। @expose ডেকোরেটরটি একটি টেমপ্লেটের সাথে এই মেথডকে সংযুক্ত করে, যা myproject.templates.index নামে টেমপ্লেট রেন্ডার করে।
৫. টেমপ্লেট তৈরি করা
TurboGears সাধারণত Jinja2 টেমপ্লেট ইঞ্জিন ব্যবহার করে। আপনার templates/ ফোল্ডারে একটি টেমপ্লেট তৈরি করুন:
<!-- app/templates/index.html -->
<html>
<head><title>TurboGears Example</title></head>
<body>
<h1>{{ message }}</h1>
</body>
</html>
এখানে, {{ message }} টেমপ্লেটটি RootController এর index মেথড থেকে পাওয়া ডাটা প্রদর্শন করবে।
৬. অ্যাপ্লিকেশন চালানো
প্রজেক্ট তৈরি এবং কনফিগারেশন করার পর, আপনি TurboGears অ্যাপ্লিকেশন চালাতে পারেন। প্রথমে, setup.py রান করুন এবং ডিপেনডেন্সি ইনস্টল করুন:
python setup.py install
তারপর অ্যাপ্লিকেশন চালাতে নিচের কমান্ড ব্যবহার করুন:
paster serve development.ini
এই কমান্ডটি অ্যাপ্লিকেশন চালাবে এবং আপনি http://localhost:8080 এ অ্যাপ্লিকেশন দেখতে পারবেন।
সারাংশ
এখানে TurboGears ফ্রেমওয়ার্ক দিয়ে একটি নতুন ওয়েব প্রজেক্ট তৈরি করার পদ্ধতি দেওয়া হয়েছে। প্রথমে TurboGears2 ইনস্টল করতে হবে, তারপর tg-admin quickstart কমান্ডের মাধ্যমে একটি নতুন প্রজেক্ট তৈরি করতে হবে। এর পর, controller, template, এবং config ফাইল তৈরি করে অ্যাপ্লিকেশন তৈরি করা হয়। TurboGears একটি শক্তিশালী ফ্রেমওয়ার্ক যা দ্রুত এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।
Read more