Flask অ্যাপ্লিকেশনের কনফিগারেশন সেটিংস অ্যাপের কার্যকারিতা, ডিবাগিং, সিকিউরিটি এবং পরিবেশভিত্তিক পরিচালনা নিশ্চিত করে। Flask কনফিগারেশন সেটিংস কাস্টমাইজ করা যায় Python ফাইল, পরিবেশ ভেরিয়েবল, অথবা রানটাইম কোড ব্যবহার করে।
কনফিগারেশন সেট করার পদ্ধতি
১. Python ফাইল ব্যবহার করে
Flask অ্যাপ্লিকেশনকে Python ফাইলের মাধ্যমে কনফিগারেশন প্রদান করা যায়। সাধারণত, একটি config.py ফাইল ব্যবহার করা হয়।
উদাহরণ:
class Config:
DEBUG = False
TESTING = False
SECRET_KEY = 'আপনার-গোপন-কী'
SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db'
SQLALCHEMY_TRACK_MODIFICATIONS = False
Flask অ্যাপ-এ কনফিগারেশন লোড:
from flask import Flask
from config import Config
app = Flask(__name__)
app.config.from_object(Config)
২. পরিবেশ ভেরিয়েবল ব্যবহার করে
কিছু কনফিগারেশন পরিবেশ ভেরিয়েবলের মাধ্যমে সেট করা যায়। এটি প্রোডাকশন পরিবেশের জন্য খুবই কার্যকর।
উদাহরণ:
export FLASK_ENV=development
export SECRET_KEY="আপনার-গোপন-কী"
Flask অ্যাপ-এ লোড:
import os
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'ডিফল্ট-গোপন-কী')
৩. রানটাইম সেটিংস
রানটাইমে সরাসরি Flask অ্যাপ্লিকেশনের কনফিগারেশন সেট করা যায়।
উদাহরণ:
app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///runtime.db'
Flask এর প্রধান কনফিগারেশন সেটিংস
Flask বিভিন্ন গুরুত্বপূর্ণ কনফিগারেশন সেটিংস সরবরাহ করে। এখানে প্রধান কয়েকটি উল্লেখ করা হলো:
| কনফিগারেশন সেটিংস | অর্থ |
|---|---|
DEBUG | ডিবাগ মোড সক্রিয় করে, যাতে ত্রুটি ডিবাগিং সহজ হয়। |
TESTING | টেস্টিং মোড চালু করে। টেস্ট কেস রান করার সময় এটি ব্যবহার হয়। |
SECRET_KEY | ক্রিপ্টোগ্রাফিক ফিচারের জন্য গোপন কী, যেমন সেশন বা ফর্ম সিকিউরিটি। |
SESSION_COOKIE_NAME | সেশনের জন্য ব্যবহৃত কুকির নাম নির্ধারণ করে। |
SQLALCHEMY_DATABASE_URI | ডাটাবেস URI সংজ্ঞায়িত করে। |
SQLALCHEMY_TRACK_MODIFICATIONS | ডাটাবেস পরিবর্তনের ট্র্যাকিং সক্রিয় বা নিষ্ক্রিয় করে। |
JSONIFY_PRETTYPRINT_REGULAR | JSON রেসপন্স সুন্দরভাবে ফরম্যাট করে। |
MAX_CONTENT_LENGTH | রিকোয়েস্ট বডির সর্বাধিক আকার সীমিত করে। |
SERVER_NAME | ডিফল্ট সার্ভার হোস্ট এবং পোর্ট নির্ধারণ করে। |
মাল্টি-এনভায়রনমেন্ট কনফিগারেশন
১. ডেভেলপমেন্ট কনফিগারেশন
class DevelopmentConfig:
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///dev.db'
SECRET_KEY = 'ডেভেলপমেন্ট-গোপন-কী'
২. প্রোডাকশন কনফিগারেশন
class ProductionConfig:
DEBUG = False
SQLALCHEMY_DATABASE_URI = 'mysql://user:password@localhost/prod_db'
SECRET_KEY = 'প্রোডাকশন-গোপন-কী'
৩. অ্যাপ্লিকেশনে পরিবেশ অনুযায়ী লোড
import os
if os.environ.get('FLASK_ENV') == 'development':
app.config.from_object('config.DevelopmentConfig')
else:
app.config.from_object('config.ProductionConfig')
ডিফল্ট কনফিগারেশন দেখা
Flask অ্যাপ্লিকেশন চালু করার পরে, ডিফল্ট কনফিগারেশন দেখতে পারেন:
print(app.config)
কাস্টম কনফিগারেশন ভেরিয়েবল
আপনার নিজস্ব কনফিগারেশন ভেরিয়েবল সংজ্ঞায়িত করতে পারেন। উদাহরণস্বরূপ:
class Config:
CUSTOM_VARIABLE = "এটি একটি কাস্টম কনফিগারেশন"
অ্যাপ্লিকেশন থেকে অ্যাক্সেস করুন:
custom_value = app.config['CUSTOM_VARIABLE']
print(custom_value)
Flask অ্যাপ্লিকেশন কনফিগারেশন ব্যবস্থাপনার সুবিধা
- পরিবেশ অনুযায়ী পরিচালনা: ডেভেলপমেন্ট, টেস্টিং, এবং প্রোডাকশন পরিবেশ আলাদা করা সহজ।
- নিরাপত্তা: সংবেদনশীল তথ্য, যেমন API কী এবং সিক্রেট কী নিরাপদে সংরক্ষণ করা যায়।
- ডিবাগিং সহজ: ডেভেলপমেন্ট কনফিগারেশনের মাধ্যমে কোড ডিবাগ করা সহজ।
- রিইউজ্যাবিলিটি: কনফিগারেশন ফাইল ব্যবহারের মাধ্যমে বিভিন্ন অ্যাপ্লিকেশনে একই সেটিংস পুনরায় ব্যবহার করা যায়।
Flask কনফিগারেশন সেটিংস সঠিকভাবে পরিচালনা করলে অ্যাপ্লিকেশনের কার্যকারিতা এবং নিরাপত্তা উন্নত হয়।
Read more