بیاموزید که چگونه به طور موثر حالت نگهداری را در برنامه جنگو خود فعال کنید و در عین حال تجربه یکپارچه را برای کاربران خود تضمین کنید.
قرار دادن برنامه جنگو در حالت تعمیر و نگهداری هنگام انجام به روز رسانی، حل مشکلات فنی یا ایجاد تغییرات قابل توجه در برنامه بسیار مهم است.
با محدود کردن موقت دسترسی کاربر و نمایش یک صفحه تعمیر و نگهداری، میتوانید پیامهای مهم را ارسال کنید، از روند بهروزرسانی یکنواخت اطمینان حاصل کنید و از تداخل احتمالی یا از دست دادن دادهها جلوگیری کنید.
چه یک توسعه دهنده یا یک مدیر سیستم باشید، درک نحوه اجرای حالت تعمیر و نگهداری در جنگو به شما امکان می دهد یک برنامه کاربردی قابل اعتماد و کاربرپسند را حفظ کنید.
نحوه استفاده از بسته Django-Maintenance-Mode
با توجه به پشتیبانی گسترده جامعه، جنگو طیف گسترده ای از بسته ها را ارائه می دهد که می تواند روند توسعه شما را به طور قابل توجهی بهبود بخشد و کار سریعتر و کارآمدتر را امکان پذیر کند. این بستهها بار کارهای تکراری را کاهش میدهند و تجربه روانتری را برای شما به عنوان یک توسعهدهنده تضمین میکنند.
یکی از بسته های ارائه شده توسط جنگو بسته django-maintenance-mode است که می توانید از آن برای قرار دادن برنامه جنگو در حالت تعمیر و نگهداری استفاده کنید. بسته django-maintenance-mode با نمایش صفحه ای برای کد وضعیت HTTP 503 کار می کند. با مراحل زیر می توانید از django-maintenance-mode در برنامه خود استفاده کنید.
مرحله 1: Django-Maintenance-Mode را در محیط مجازی خود نصب کنید
- در محیط مجازی پروژه خود، بسته را با مدیریت بسته پیپ پایتون نصب کنید. این دستور را در رابط خط فرمان (CLI) خود اجرا کنید: pip install django-maintenance-mode
- پس از نصب بسته، maintenance_mode را به لیست INSTALLED_APPS در فایل settings.py خود اضافه کنید: INSTALLED_APPS = [ # برخی از برنامههای دیگر، ‘maintenance_mode’,]
- سپس، میانافزار django-maintenance-mode را به لیست MIDDLEWARE در فایل settings.py خود اضافه کنید: MIDDLEWARE = [ # برخی میانافزار دیگر توسط django، ‘maintenance_mode.middleware.MaintenanceModeMiddleware’،]
pip install django-maintenance-mode
INSTALLED_APPS = [
# some other apps,
'maintenance_mode',
]
MIDDLEWARE = [
# some other middleware by django,
'maintenance_mode.middleware.MaintenanceModeMiddleware',
]
مرحله 2: یک الگوی HTML برای نمایش پیام حالت نگهداری ایجاد کنید
برای اینکه بسته django-maintenance-mode صفحه خطای 503 را نمایش دهد، به دنبال فایل قالب 503.html در فهرست قالب ها می گردد. برای تنظیم این، موارد زیر را انجام دهید:
- پوشه ای به نام templates در پوشه اصلی خود ایجاد کنید.
- پوشه templates ایجاد شده خود را باز کنید و یک فایل به نام 503.html ایجاد کنید.
- در فایل settings.py خود، تنظیمات TEMPLATES را پیدا کنید و لیست DIRS را در آن به این صورت پیکربندی کنید: ‘DIRS’: [BASE_DIR/’templates’]،
- فایل 503.html خود را باز کنید و کد HTML را بنویسید تا پیام خطا به کاربران شما ارائه شود. در اینجا یک کد ساده وجود دارد که می توانید استفاده کنید:
سرویس 503 در دسترس نیست
سرویس 503 در دسترس نیست
اوه! ما در حال حاضر روی برخی به روز رسانی ها کار می کنیم. بابت ناراحتی پیش آمده پوزش می طلبیم و از صبر شما سپاسگزاریم.
لطفاً بعداً از وبسایت بازدید کنید یا با تیم پشتیبانی ما تماس بگیرید
'DIRS': [BASE_DIR/'templates'],<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>503 Service Unavailable</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f5f5f5;
margin: 0;
padding: 0;
}
.container-503 {
max-width: 600px;
margin: 100px auto;
text-align: center;
}
h1 {
font-size: 48px;
color: #333333;
margin-bottom: 20px;
}
p {
font-size: 18px;
color: #666666;
margin-bottom: 30px;
}
.btn-503 {
display: inline-block;
padding: 12px 24px;
background-color: #007bff;
color: #ffffff;
text-decoration: none;
border-radius: 4px;
font-size: 18px;
}
</style>
</head>
<body>
<div class = "container-503">
<h1>503 Service Unavailable</h1>
<p>
Oops! We are currently working on some updates.
We apologize for the inconvenience and appreciate your patience.
</p>
<p>Please visit the website later or contact our support team</p>
<a href = "mailto:support@yourcompanymail.com" class = "btn-503">
Contact support
</a>
</div>
</body>
</html>مرحله 3: حالت Maintenance Mode را روشن کنید و سرور خود را مجددا راه اندازی کنید
در فایل settings.py خود، این کد را برای روشن کردن حالت نگهداری اضافه کنید:
MAINTENANCE_MODE = Trueسرور توسعه خود را با اجرای این در CLI خود مجددا راه اندازی کنید:
python manage.py runserverهنگامی که به وب سایت خود می روید، باید صفحه تعمیر و نگهداری که ایجاد کرده اید را ببینید.

نحوه نادیده گرفتن سایت مدیریت در حالت نگهداری جنگو
برای اینکه سایت سرپرست شما حتی در حالت تعمیر و نگهداری کار کند، حالت django-maintenance تنظیمی به نام MAINTENANCE_MODE_IGNORE_ADMIN_SITE ارائه می دهد. شما باید این تنظیم را در فایل settings.py خود اضافه کنید و آن را روی True تنظیم کنید:
MAINTENANCE_MODE_IGNORE_ADMIN_SITE = Trueمقدار پیشفرض تنظیمات بالا False است. بنابراین اگر آن را روی True تنظیم نکنید، سایت مدیریت شما تحت تأثیر صفحه حالت تعمیر و نگهداری قرار خواهد گرفت.
چگونه یک نمای مبتنی بر عملکرد خاص را در حالت نگهداری جنگو نادیده بگیریم
بسته django-maintenence-mode یک دکوراتور را فراهم می کند تا از رفتن یک نمای یا صفحه خاص – مانند صفحه درباره سایت شما – به حالت تعمیر و نگهداری جلوگیری کند. برای انجام این کار، ابتدا دکوراتور را در ماژول views.py خود وارد کنید:
from maintenance_mode.decorators import force_maintenance_mode_offپس از وارد کردن دکوراتور، آن را به شکل زیر به نمای خود اضافه کنید:
@force_maintenance_mode_off
def view_name(request):
# perform view logic
# never return 503 responseپس از اجرای صحیح دکوراتور، URL مربوط به آن نمای خاص برای کاربران شما قابل دسترسی خواهد بود.
نحوه نادیده گرفتن یک نمای خاص مبتنی بر کلاس در حالت نگهداری جنگو
نادیده گرفتن نمای مبتنی بر کلاس مشابه نادیده گرفتن نمای مبتنی بر تابع است. با این حال، بهترین روش انجام آن در فایل urls.py است.
ابتدا باید دکوراتور force_maintenance_mode_off را در فایل urls.py برنامه خود وارد کنید. سپس باید آن را در مسیر URL خود قرار دهید. در اینجا یک مثال است:
from maintenance_mode.decorators import force_maintenance_mode_off
from .views import YourView
urlpatterns = [
# never return 503 response
path('', force_maintenance_mode_off(YourView.as_view()), name='my_view'),
]اطمینان حاصل کنید که سایر موارد ضروری مانند مسیر و نمای کلاسی خود را نیز وارد میکنید.
نحوه روشن کردن حالت تعمیر و نگهداری برای یک نمای مبتنی بر عملکرد خاص
- برای روشن کردن حالت تعمیر و نگهداری برای یک نما، ابتدا حالت نگهداری را در فایل settings.py خود با انجام این کار خاموش کنید: MAINTENANCE_MODE = False
- بعد، در views.py خود، باید دکوراتور force_maintenance_mode_on را وارد کنید و آن را به نمای خود اضافه کنید: from maintenance_mode.decorators import force_maintenance_mode_on@force_maintenance_mode_ondef view_name(درخواست): # اجرای منطق مشاهده # 0 پاسخ همیشه بازگشت
MAINTENANCE_MODE = Falsefrom maintenance_mode.decorators import force_maintenance_mode_on
@force_maintenance_mode_on
def view_name(request):
# Perform view logic
# Always return 503 responseنحوه روشن کردن حالت تعمیر و نگهداری برای یک نمای کلاسی خاص
- ابتدا باید حالت نگهداری را در فایل settings.py خود خاموش کنید: MAINTENANCE_MODE = False
- سپس، در urls.py خود، باید دکوراتور force_maintenance_mode_on را وارد کنید و آن را به مسیر URL مورد نیاز اضافه کنید: from maintenance_mode.decorators import force_maintenance_mode_onfrom .views import YourViewurlpatterns = [ # Always return 503 answer.(ew ForceView. ())، نام=’my_view’)،]
MAINTENANCE_MODE = Falsefrom maintenance_mode.decorators import force_maintenance_mode_on
from .views import YourView
urlpatterns = [
# Always return 503 response
path('', force_maintenance_mode_on(YourView.as_view()), name='my_view'),
]نحوه استفاده از یک نام قالب متفاوت برای حالت نگهداری جنگو
به طور پیش فرض، بسته django-maintenance-mode به دنبال قالب templates/503.html می گردد. می توانید تصمیم بگیرید که این مورد را در فایل settings.py لغو کنید.
فرض کنید یک پوشه جداگانه برای رسیدگی به خطاها در برنامه خود دارید. شما می خواهید قالب 503.html خود را در این پوشه قرار دهید. بنابراین قالب شما در templates/errors/503.html خواهد بود.
تنظیمات پیش فرض برای این پیکربندی این است:
MAINTENANCE_MODE_TEMPLATE = "503.html"برای لغو آن، باید مسیر دیگری را اضافه کنید که به صفحه خطای خود اشاره می کند. در اینجا یک مثال است:
MAINTENANCE_MODE_TEMPLATE = "errors/503.html"همچنین در صورت تمایل می توانید نام فایل را تغییر دهید و اگر تنظیمات لازم را اضافه کنید همه چیز به خوبی کار می کند.
جدا از تنظیمات فوق، بسته django-maintenance-mode پیکربندی های جالب دیگری را ارائه می دهد تا به شما کمک کند حالت تعمیر و نگهداری برنامه خود را مطابق با نیاز خاص خود سفارشی کنید. شما می توانید در مورد این تنظیمات در مستندات django-maintenance-mode بخوانید.
از حالت تعمیر و نگهداری برای اطمینان از بهروزرسانیهای یکپارچه و تجربه کاربری پیشرفته در برنامه خود استفاده کنید
استفاده از حالت نگهداری در برنامه شما میتواند کار را برای شما و کاربرانتان آسانتر کند. با غیرفعال کردن موقت دسترسی به تمام یا بخشی از برنامه خود در حین بهروزرسانی یا کارهای تعمیر و نگهداری، میتوانید اختلالات و خطاهایی را که ممکن است از تعاملات همزمان کاربر ایجاد شود، به حداقل برسانید.
استفاده از حالت نگهداری نه تنها به شما این امکان را می دهد که به روز رسانی های لازم را به طور موثر انجام دهید، بلکه تعهد به ارائه یک تجربه روان و بدون وقفه را برای کاربران خود نشان می دهد.
به غیر از حالت تعمیر و نگهداری، شما همچنین می توانید قالب های سفارشی برای سایر خطاها در جنگو ارائه دهید.