Flask অ্যাপ্লিকেশনে Custom Configuration তৈরি করার মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের নির্দিষ্ট কনফিগারেশন ভেরিয়েবল সেট করতে পারেন, যা অ্যাপের সেটিংস, নিরাপত্তা, ডাটাবেস কনফিগারেশন, API কী, ইত্যাদি জন্য ব্যবহৃত হয়। কাস্টম কনফিগারেশন ব্যবহার করার মাধ্যমে আপনার অ্যাপ্লিকেশন আরো নমনীয় এবং পরিবেশ অনুযায়ী কনফিগার করা যায়।
Flask-এ কাস্টম কনফিগারেশন তৈরি করা
Flask অ্যাপ্লিকেশনে কাস্টম কনফিগারেশন তৈরি করার জন্য সাধারণত একটি config.py ফাইল ব্যবহার করা হয়, যেখানে আপনার কাস্টম কনফিগারেশন ভেরিয়েবলগুলো থাকবে। এর পরে এই কনফিগারেশন ফাইলটি অ্যাপ্লিকেশনে লোড করা হয়।
১. Custom Configuration তৈরি করা
ধাপ ১: config.py ফাইল তৈরি করা
প্রথমে, আপনার Flask প্রজেক্ট ডিরেক্টরিতে একটি config.py ফাইল তৈরি করুন, যেখানে আপনি কাস্টম কনফিগারেশন সেটিংস সংজ্ঞায়িত করবেন।
# config.py
class Config:
SECRET_KEY = 'আপনার-গোপন-কী'
SQLALCHEMY_DATABASE_URI = 'sqlite:///your_database.db'
SQLALCHEMY_TRACK_MODIFICATIONS = False
API_KEY = 'আপনার-API-কী'
MAX_CONTENT_LENGTH = 16 * 1024 * 1024 # 16 MB পর্যন্ত ফাইল আপলোডের অনুমতি
DEBUG = False
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///dev_database.db'
class ProductionConfig(Config):
SQLALCHEMY_DATABASE_URI = 'mysql://user:password@localhost/prod_db'
এখানে:
Configক্লাসে সাধারণ কনফিগারেশন সেটিংস রাখা হয়েছে।DevelopmentConfig: ডেভেলপমেন্ট পরিবেশের জন্য কনফিগারেশন, যেখানে ডিবাগ মোড চালু করা হয়েছে।ProductionConfig: প্রোডাকশন পরিবেশের জন্য কনফিগারেশন, যেখানে ডাটাবেস URI পরিবর্তন করা হয়েছে।
ধাপ ২: কনফিগারেশন ফাইল লোড করা
এখন, আপনার Flask অ্যাপ্লিকেশন ফাইলে config.py থেকে কনফিগারেশন লোড করতে হবে।
# app.py
from flask import Flask
from config import DevelopmentConfig # অথবা ProductionConfig
app = Flask(__name__)
# কাস্টম কনফিগারেশন লোড করা
app.config.from_object(DevelopmentConfig) # অথবা ProductionConfig
@app.route("/")
def home():
return f"Flask অ্যাপ্লিকেশন চলছে {app.config['DEBUG']} মোডে"
if __name__ == "__main__":
app.run()
এখানে:
app.config.from_object()ব্যবহার করা হয়েছে কনফিগারেশন ফাইল থেকে কনফিগারেশন লোড করার জন্য।
ধাপ ৩: অ্যাপ চালানো
আপনার অ্যাপ চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
python app.py
এটি আপনার Flask অ্যাপ্লিকেশন চালু করবে এবং কাস্টম কনফিগারেশন অনুযায়ী অ্যাপ্লিকেশন পরিচালিত হবে।
২. পরিবর্তনশীল কনফিগারেশন মান
আপনি চাইলে রানটাইমে কাস্টম কনফিগারেশন মান পরিবর্তন করতে পারেন।
app.config['SECRET_KEY'] = 'নতুন-গোপন-কী'
app.config['DEBUG'] = True
এটি ডেভেলপমেন্ট মোড চালু করার জন্য ব্যবহৃত হবে। Flask কনফিগারেশন সিস্টেমে কাস্টম ভেরিয়েবল পরিবর্তন করার এই পদ্ধতিটি খুবই শক্তিশালী এবং নমনীয়।
৩. পরিবেশভিত্তিক কনফিগারেশন
একই কোডবেসের মধ্যে বিভিন্ন পরিবেশে (যেমন ডেভেলপমেন্ট এবং প্রোডাকশন) কাজ করার জন্য আপনি পরিবেশভিত্তিক কনফিগারেশন তৈরি করতে পারেন।
উদাহরণ:
import os
if os.environ.get('FLASK_ENV') == 'development':
app.config.from_object('config.DevelopmentConfig')
else:
app.config.from_object('config.ProductionConfig')
এখানে:
os.environ.get('FLASK_ENV')ব্যবহার করা হয়েছে পরিবেশ পরিবর্তনের জন্য।- ডেভেলপমেন্ট পরিবেশে
DevelopmentConfigকনফিগারেশন, এবং প্রোডাকশনেProductionConfigকনফিগারেশন লোড করা হবে।
৪. পরিবেশ ভেরিয়েবল ব্যবহার করে কনফিগারেশন
Flask অ্যাপ্লিকেশনে পরিবেশ ভেরিয়েবল ব্যবহার করে কাস্টম কনফিগারেশন মান লোড করা যায়। এতে নিরাপত্তা এবং কনফিগারেশন ভিন্ন পরিবেশে পরিচালনা করা সহজ হয়।
import os
from flask import Flask
app = Flask(__name__)
# পরিবেশ ভেরিয়েবল থেকে কনফিগারেশন লোড করা
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'ডিফল্ট-কী')
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URI', 'sqlite:///default.db')
@app.route("/")
def home():
return f"Flask অ্যাপ্লিকেশন চলছে {app.config['SQLALCHEMY_DATABASE_URI']} ডাটাবেস URI এর সাথে।"
if __name__ == "__main__":
app.run()
এখানে:
os.getenv()ব্যবহার করা হয়েছে পরিবেশ ভেরিয়েবল থেকে কনফিগারেশন মান লোড করতে।SECRET_KEYএবংDATABASE_URIপরিবেশ ভেরিয়েবল থেকে সেট করা হয়েছে, অন্যথায় ডিফল্ট মান ব্যবহার করা হবে।
৫. কাস্টম কনফিগারেশন পরিবর্তন এবং রিফ্রেশ করা
কনফিগারেশন পরিবর্তন করা হলে Flask অ্যাপ্লিকেশন রিফ্রেশ করা যায়। উদাহরণস্বরূপ, কনফিগারেশন পরিবর্তন করার পর অ্যাপ্লিকেশনটি পুনরায় চালু না করেই পরিবর্তন দেখতে পারেন।
app.config['DEBUG'] = True # নতুন কনফিগারেশন
Flask-এ কাস্টম কনফিগারেশন তৈরি করা সহজ এবং কার্যকর। config.py ফাইল ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের জন্য নির্দিষ্ট কনফিগারেশন ভেরিয়েবল সেট করতে পারেন এবং প্রয়োজন অনুযায়ী কনফিগারেশন লোড করতে পারেন। এই কাস্টম কনফিগারেশন পদ্ধতিটি আপনার অ্যাপ্লিকেশনকে আরো নমনীয়, সুরক্ষিত এবং পরিবেশভিত্তিক পরিচালনা করতে সাহায্য করে।
Read more