Flask অ্যাপ্লিকেশনের ডিরেক্টরি স্ট্রাকচার প্রজেক্টের জটিলতা এবং স্কেল অনুযায়ী পরিবর্তন হতে পারে। একটি ছোট অ্যাপ্লিকেশনের জন্য সহজ স্ট্রাকচার যথেষ্ট, তবে বড় এবং জটিল অ্যাপ্লিকেশনের জন্য একটি সুসংগঠিত এবং স্ট্যান্ডার্ড ডিরেক্টরি স্ট্রাকচার প্রয়োজন হয়।
ছোট Flask অ্যাপের ডিরেক্টরি স্ট্রাকচার
ছোট প্রজেক্টের জন্য, নিচের ডিরেক্টরি স্ট্রাকচার ব্যবহার করা যেতে পারে:
flask_app/
├── app.py
├── requirements.txt
├── templates/
│ └── index.html
├── static/
│ ├── css/
│ ├── js/
│ └── images/
স্ট্রাকচারের উপাদান:
- app.py: প্রধান Flask অ্যাপ্লিকেশনের ফাইল।
- requirements.txt: প্রজেক্টে ব্যবহৃত প্যাকেজগুলোর তালিকা।
- templates/: HTML ফাইলের জন্য ফোল্ডার।
- static/: CSS, JavaScript, এবং ইমেজ ফাইল রাখার জন্য ফোল্ডার।
বড় Flask অ্যাপের ডিরেক্টরি স্ট্রাকচার
বড় এবং জটিল অ্যাপ্লিকেশনের জন্য একটি মডুলার স্ট্রাকচার দরকার। নিচে স্ট্রাকচারের উদাহরণ দেওয়া হলো:
flask_app/
├── app/
│ ├── __init__.py
│ ├── routes.py
│ ├── models.py
│ ├── forms.py
│ ├── templates/
│ │ ├── layout.html
│ │ ├── home.html
│ │ └── about.html
│ └── static/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── script.js
│ └── images/
├── config.py
├── run.py
├── requirements.txt
├── venv/
স্ট্রাকচারের উপাদান:
- app/: অ্যাপ্লিকেশনের মূল কোড এখানে থাকে।
__init__.py: Flask অ্যাপ ইনিশিয়ালাইজ করার জন্য ফাইল।- routes.py: রাউটিং এবং ভিউ ফাংশন রাখার জন্য।
- models.py: ডাটাবেস মডেল সংক্রান্ত কোড।
- forms.py: Flask-WTF ফর্ম সম্পর্কিত কোড।
- templates/: HTML ফাইল রাখার জন্য।
- static/: CSS, JavaScript, এবং অন্যান্য স্ট্যাটিক ফাইল।
- config.py: কনফিগারেশন ফাইল, যেখানে API কী, ডাটাবেস URI ইত্যাদি সংরক্ষণ করা হয়।
run.py: অ্যাপ্লিকেশন চালানোর জন্য ফাইল।
from app import app if __name__ == "__main__": app.run(debug=True)requirements.txt: Flask এবং অন্যান্য লাইব্রেরির নির্ভরশীলতা।
উদাহরণ:Flask==2.3.3 Flask-WTF==1.0.1 Flask-SQLAlchemy==3.0.5- venv/: Virtual Environment, যেখানে প্রজেক্টের জন্য নির্ধারিত প্যাকেজগুলো থাকে।
বড় অ্যাপ্লিকেশনের ডিরেক্টরি ইনিশিয়ালাইজ করার জন্য __init__.py
app/__init__.py ফাইলের উদাহরণ:
from flask import Flask
app = Flask(__name__)
app.config.from_object('config')
from app import routes
একটি মডুলার অ্যাপের উদাহরণ
routes.py:
from app import app
@app.route("/")
def home():
return "স্বাগতম হোমপেজে!"
@app.route("/about")
def about():
return "এটি একটি বড় Flask অ্যাপ।"
config.py:
import os
class Config:
SECRET_KEY = os.environ.get('SECRET_KEY') or 'আপনার-গোপন-কী'
SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db'
models.py:
from app import app
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
Flask ডিরেক্টরি স্ট্রাকচার কেন গুরুত্বপূর্ণ?
- বড় প্রজেক্টের ক্ষেত্রে কোড মেইনটেন করা সহজ।
- মডুলার ডিজাইন উন্নত করে।
- কোড রিইউজ্যাবিলিটি এবং রিডেবিলিটি বাড়ায়।
- স্কেলিং এবং ডিবাগিং সহজ হয়।
Flask ডিরেক্টরি স্ট্রাকচার আপনার প্রজেক্টের জটিলতা এবং স্কেল অনুযায়ী ডিজাইন করা উচিত। ছোট প্রজেক্টের জন্য সরল স্ট্রাকচার যথেষ্ট, তবে বড় প্রজেক্টে মডুলার স্ট্রাকচার অপরিহার্য।
Read more