ارائه دهنده خدمات ابری PaaS و DBaaS

django

برنامه‌های Django

(Django Apps)

🎯 توضیحات و نکات تکمیلی

فهرست عناوین:

انتخاب نسخه‌ی Python

به‌صورت پیش‌فرض برنامه‌ی شما روی Python 3.8 اجرا می‌شود. صورتی که قصد دارید نسخه دیگری را برای اجرای برنامه‌ی‌تان استفاده کنید می‌توانید داخل فایل liara.json بخش زیر را اضافه کنید. توجه داشته باشید که فایل liara.jsonرا باید در کنار فایل requirements.txt بسازید:

{
  "django": {
    "pythonVersion": "3.9"
  }
}

  • 3.7
  • 3.8
  • 3.9

استفاده از Supervisord

در صورتی که نیاز به Worker برای اجرای Background Job‌ها برای مثال با Celery را دارید، می‌تونید یک فایل به‌نامsupervisor.confدر کنار requirements.txtبسازید و سپس دیپلوی کنید. در این‌صورت Supervisor اجرا شده و دستور شما را در Background اجرا خواهد کرد. در ادامه، یک نمونه فایل supervisor.confرا مشاهده می‌کنید:

[program:celery-worker]
process_name=%(program_name)s_%(process_num)02d
command=celery worker -A sendmail --loglevel=INFO
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
numprocs=1
startsecs=10
stopwaitsecs=600
redirect_stderr=true
stdout_logfile=/tmp/worker.log

دستور collectstatic

در هر استقراری که انجام می‌دهید، لیارا به‌صورت خودکار دستورpython manage.py collectstaticرا اجرا می‌کند. برای جلوگیری از اجرای خودکار این دستور، باید تنظیمات زیر را در فایل liara.json قرار بدهید:

{
  "django": {
    "collectStatic": false
  }
}

دستور compilemessages

اگر برنامه‌ی شما چند زبانه است و نیازمند اجرای دستورpython manage.py compilemessagesبعد از هر بار استقرار هستید، باید تنظیمات زیر را در فایل liara.json قرار بدهید:

{
  "django": {
    "compileMessages": true
  }
}
در صورتی که این پارامتر را فعال کنید، حتما لازم است که پوشه‌یlocaleدر ریشه‌ی برنامه‌ی‌تان قرار داشته باشد.

جلوگیری از اعمال تغییرات در فایل settings.py

لیارا به‌صورت خودکار فایلsettings.pyبرنامه‌ی شما را پیدا کرده و در انتهای آن تنظیماتی را اضافه می‌کند تا برای اجرا آماده شود. چنانچه قصد غیر فعال کردن آن را دارید، باید فایل liara.json زیر را به‌ریشه‌ی برنامه‌ی‌تان اضافه کنید:

{
  "django": {
    "modifySettings": false
  }
}
توجه داشته باشید که فقط و فقط این قابلیت را زمانی غیرفعال کنید که کاملا به‌نتایج آن آگاه باشید.

تنظیمات Nginx

استقرار برنامه‌های Django، توسط وب‌سرور Nginx انجام می‌گیرد. در شرایط مختلف، ممکن است که نیاز داشته باشید این وب‌سرور را مطابق با نیازهای‌تان تنظیم کنید. برای این کار، کافیست که در ریشه‌ی برنامه‌ی‌تان، فایلی با نامliara_nginx.confایجاد کنید. به‌صورت پیش‌فرض، برای برنامه‌های Django، این فایل به شکل زیر تعریف شده‌است:

location /static {
  alias /usr/src/app/staticfiles;
}

location / {
  try_files $uri @django_app;
}

location ~.sqlite3$ {
  deny all;
  error_page 403 =404 /;
}

که شما می‌توانید آن را به شیوه‌ی خودتان گسترش دهید. برای مثال، برای فعال‌کردن فشرده‌سازیgzipمی‌توانید به این صورت عمل کنید:

gzip             on;
gzip_disable     "msie6";
gzip_vary        on;
gzip_proxied     any;
gzip_comp_level  6;
gzip_types       text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
location /static {
  alias /usr/src/app/staticfiles;
}
location / {
  try_files $uri @django_app;
}

افزایش محدودیت حجم آپلود فایل

همان‌طور که در بخش قبلی گفته شد، پلتفرم Django در لیارا با استفاده از وب‌سرور Nginx مستقر و اجرا می‌گردد. در این وب‌سرور، به‌صورت پیش‌فرض حداکثر حجم مجاز آپلود فایل 1MB در نظر گرفته شده‌است. شما می‌توانید یک فایل با نامliara_nginx.confدر کنارrequirements.txtبسازید و محتویات زیر را داخل آن قرار دهید و سپس دستورliara deployرا وارد کنید:

client_max_body_size 250M;

location /static {
  alias /usr/src/app/staticfiles;
}

location / {
  try_files $uri @django_app;
}

location ~.sqlite3$ {
  deny all;
  error_page 403 =404 /;
}

با قرار دادن فایل بالا در ریشه‌ی برنامه‌ی‌تان حداکثر حجم مجاز آپلود فایل به 250MB افزایش می‌یابد. شما می‌توانید مقدار دلخواه خودتان را تنظیم کنید.