معرفی Flask و مدیریت سشنها
فلاسک یکی از فریمورکهای محبوب Python برای ساخت وب اپلیکیشنها است. او به دلیل سادگی و توانمندیهای زیادش معروف شده است. یکی از امکانات مهم فلاسک، مدیریت سشنها (نشستها) است که به شما اجازه میدهد اطلاعات کاربران را بین درخواستها حفظ نمایید. در اینجا به بررسی تابع get_cookie_domain
از کلاس SessionInterface
در فلاسک ۳.۰ میپردازیم.
تابع get_cookie_domain
به شما امکان میدهد دامینی را که کوکی سشن باید در آن ایجاد شود، مشخص کنید. این نکته اهمیت زیادی دارد زیرا کوکیها بر اساس دامنه عمل میکنند و اگر دامنه نادرست انتخاب شود، کوکی به درستی ایجاد نمیشود یا در دسترس نخواهد بود. به عنوان مثال، اگر شما وبسایتی با زیر دامنهها دارید و قصد دارید سشن را در سراسر آنها به اشتراک بگذارید، باید دامنه اصلی را به درستی تنظیم کنید.
در فلاسک ۳.۰، ما میتوانیم از SessionInterface.get_cookie_domain()
استفاده کنیم تا دامنهای را که باید برای کوکیها استفاده شود، به وضوح تشخیص دهیم. این تابع به شما این امکان را میدهد که اگر دامنهای خاص داشته باشید، آن را در اینجا مشخص کنید، در غیر این صورت از پیشفرضها استفاده میکند.
حالا بیایید ببینیم که چطور میتوانیم این تابع را در عمل استفاده کنیم. در ابتدا، نیاز داریم فلاسک را نصب و یک اپلیکیشن ابتدایی بسازیم. سپس میتوانیم تابع get_cookie_domain
را در بطن اپلیکیشن برای مدیریت سشن از طریق کوکیها استفاده کنیم.
نصب فلاسک و نوشتن کد
برای شروع، شما میتوانید فلاسک را با استفاده از pip نصب کنید. مناسب است که یک محیط مجازی نیز برای ایزوله کردن وابستگیها ایجاد کنید. پس از نصب، یک فایل پایتون جدید بسازید و کد زیر را برای ساخت اپلیکیشن فلاسک بنویسید:
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'your_secret_key'
class CustomSessionInterface(SessionInterface):
def get_cookie_domain(self):
# در اینجا میتوانید دامنه مورد نظر خود را تنظیم کنید
return '.yourdomain.com' # دامنه اصلی
app.session_interface = CustomSessionInterface()
@app.route('/')
def index():
session['key'] = 'value'
return 'Session is set!'
if __name__ == '__main__':
app.run(debug=True)
تحلیل کد
from flask import Flask, session
این خط ماژولهای مورد نیاز از فلاسک را وارد میکند.
app = Flask(__name__)
یک نمونه از اپلیکیشن فلاسک ایجاد میکنیم.
app.secret_key = 'your_secret_key'
یک کلید مخفی برای محافظت از سشنها تعیین میکنیم.
class CustomSessionInterface(SessionInterface):
کلاسی جدید برای سفارشیسازی مدیریت سشن ایجاد میکنیم.
def get_cookie_domain(self):
تابع مربوط به دامنه کوکی را تعریف میکنیم.
return '.yourdomain.com'
دامنهای که کوکیهای سشن باید در آن قرار گیرند را برمیگرداند.
app.session_interface = CustomSessionInterface()
کلاس سفارشیسازی شده را به اپلیکیشن اختصاص میدهیم.
@app.route('/')
مسیر اصلی وباپلیکیشن را تعریف میکنیم.
session['key'] = 'value'
مقداری را در سشن ذخیره میکنیم.
app.run(debug=True)
اپلیکیشن را در حالت دیباگ اجرا میکنیم.