برنامه نویسی

وب سایت جنگو خود را با فایل های ثابت در Vercel به صورت رایگان میزبانی کنید (روش جدید)

Summarize this content to 400 words in Persian Lang
میزبانی یک وب‌سایت کامل جنگو می‌تواند چالش‌برانگیز باشد، به‌ویژه در هنگام انتخاب پلتفرم‌های رایگان. با این حال، با Vercel، می‌توانید وب‌سایت خود را بدون هیچ هزینه‌ای پیکربندی کنید و با استفاده از این روش جدید بدون خطا، فایل‌های استاتیک به درستی کار کنند.در این آموزش، شما در کل فرآیند، از آماده سازی محیط تا استقرار نهایی، راهنمایی خواهید شد.

الزامات:

یک پروژه جنگو کار بر روی دستگاه خود داشته باشید
پایتون را نصب کنید

با داشتن این شرایط، اکنون می توانید آموزش زیر را ادامه دهید:

آماده سازی محیط

مرحله 1:

فایل را باز کنید wsgi.py پروژه شما، معمولاً در پوشه “project_name” شما قرار دارد و خط زیر را در پایان اضافه کنید:

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘nomedoseuprojeto.settings’)

application = get_wsgi_application()

# esta linha
app = application

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

گام 2:

به پوشه ریشه پروژه خود بروید و فایل را ایجاد کنید vercel.json با کد زیر:

{
“version”: 2,
“builds”: [
{
“src”: “nomedoseuprojeto/wsgi.py”,
“use”: “@vercel/python”,
“config”: { “maxLambdaSize”: “15mb”, “runtime”: “python3.9” }
}],
“routes”: [
{
“src”: “/(.*)”,
“dest”: “nomedoseuprojeto/wsgi.py”
}
] }

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نام دایرکتوری که فایل در آن قرار دارد را جایگزین “yourprojectname” کنید wsgi.py پروژه جنگو شما

توضیح (در صورت تمایل می توانید از آن صرف نظر کنید):

پرونده vercel.json نحوه ساخت و مسیریابی پروژه شما در پلتفرم Vercel را پیکربندی می کند

نسخه: 2: نسخه پیکربندی Vercel را تنظیم می کند (معمولاً 1 یا 2).

می سازد: نحوه ساخت پروژه شما را مشخص می کند.

src: مسیر فایل wsgi.py پروژه جنگو شما

استفاده کنید: از محیط Vercel یا Python استفاده کنید.

پیکربندی: تنظیمات مخصوص پایتون مانند حداکثر اندازه و نسخه بسته.

مسیرها: نحوه مسیریابی درخواست های HTTP را مشخص می کند.

src: تمام درخواست های HTTP.

مقصد: فوروارد به wsgi.py از پروژه شما

اکنون با ایجاد صحیح vercel.json، در مرحله بعد یک اسکریپت bash برای اجرای دستورات ترمینال در پلتفرم Vercel اضافه می‌کنید.

مرحله 3:

در پوشه اصلی پروژه خود، یک فایل دیگر ایجاد کنید build.sh با کد زیر:

# build.sh
echo “Starting build script”

pip install -r requirements.txt

# make migrations
python3 manage.py makemigrations
python3 manage.py migrate

# collectstatic
python3 manage.py collectstatic

echo “Build script completed”

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 4:

یک requirement.txt از تمام وابستگی های پروژه خود ایجاد کنید و اضافه کنید whitenoise در لیست، همانطور که در مثال زیر نشان داده شده است:

# outras dependências…
Django==5.0.6
whitenoise==6.7.0

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در زمان نوشتن این پست، نسخه فعلی WhiteNoise 6.7.0 است. به راحتی می توانید از نسخه جدیدتر در مورد خود استفاده کنید.

توضیح:

نویز سفید یک کتابخانه پایتون است که به ارائه کارآمد فایل های استاتیک در برنامه های وب کمک می کند. اغلب با جنگو برای ساده سازی پیکربندی و بهبود عملکرد هنگام ارائه فایل های ثابت مانند CSS، جاوا اسکریپت و تصاویر استفاده می شود که برای میزبانی در پلتفرم های ابری بسیار مفید است.

مرحله 5:

میان افزار whitenoise را به آن اضافه کنید settings.py پروژه شما:

‘django.middleware.security.SecurityMiddleware’,
‘whitenoise.middleware.WhiteNoiseMiddleware’, # Adicione esta linha

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

محل فایل های استاتیک خود را پیکربندی کنید:

STATIC_URL = ‘static/’
STATIC_ROOT = (BASE_DIR/”static/”)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و اگر ترجیح می دهید، پیکربندی زیر را نیز اضافه کنید تا فشرده سازی و کش را فعال کنید و از عملکرد بهتر در برنامه خود اطمینان حاصل کنید:

STATICFILES_STORAGE = ‘whitenoise.storage.CompressedManifestStaticFilesStorage’

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استقرار در Vercel

اکنون که محیط را آماده کرده اید، آماده استقرار پروژه خود در Vercel هستید. برای تکمیل فرآیند مراحل زیر را دنبال کنید:

1 – یک حساب کاربری در پلتفرم Vercel ایجاد کنید اگر قبلا این کار را نکرده اید2 – مخزن git پروژه خود را وارد کنید:

3 – اگر پروژه شما نیاز به متغیرهای محیطی دارد، متغیرهای محیطی را پیکربندی کنید و سپس روی “استقرار” کلیک کنید.:

4 – منتظر فرآیند باشید:

5 – در نهایت، پس از تکمیل فرآیند، باید صفحه‌ای شبیه به این مشاهده کنید:

و بوییه! شما موفق شده اید پروژه جنگو خود را با فایل های ثابت در Vercel میزبانی کنید! موفقیت شما را تبریک می گویم، این یک قدم بزرگ است!

خود را برای سفرهای آینده آماده کنید، زیرا Vercel بدون سرور است، نمی‌توانید وظایف نوشتن را مستقیماً در Vercel انجام دهید، مانند آپلود تصاویر و ویدیوها. با این حال، نگران نباشید، در مقاله آینده نحوه انجام این کار را به صورت رایگان با استفاده از API یک پلت فرم رایگان دیگر که فایل های رسانه ای را به صورت رایگان ارائه می دهد، خواهید آموخت. 💸🫡

استفاده کنید: اگر پروژه جنگو شما از پایگاه داده SQLite استفاده می کند که عموماً در تمام پروژه های جنگو تولید می شود، نمی توانید مستقیماً در Vercel بنویسید. برای این کار باید از سرور پایگاه داده استفاده کنید. Vercel یک نمونه رایگان از PostgreSQL را ارائه می دهد که می تواند در پروژه شما پیکربندی شود.

لینک های مفید

اغلب دوباره چک کنید! ❤️ سوال؟ در قسمت نظرات این مورد را ثبت کنید!

میزبانی یک وب‌سایت کامل جنگو می‌تواند چالش‌برانگیز باشد، به‌ویژه در هنگام انتخاب پلتفرم‌های رایگان. با این حال، با Vercel، می‌توانید وب‌سایت خود را بدون هیچ هزینه‌ای پیکربندی کنید و با استفاده از این روش جدید بدون خطا، فایل‌های استاتیک به درستی کار کنند.
در این آموزش، شما در کل فرآیند، از آماده سازی محیط تا استقرار نهایی، راهنمایی خواهید شد.

الزامات:

  • یک پروژه جنگو کار بر روی دستگاه خود داشته باشید
  • پایتون را نصب کنید

با داشتن این شرایط، اکنون می توانید آموزش زیر را ادامه دهید:

آماده سازی محیط

مرحله 1:

فایل را باز کنید wsgi.py پروژه شما، معمولاً در پوشه “project_name” شما قرار دارد و خط زیر را در پایان اضافه کنید:

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'nomedoseuprojeto.settings')

application = get_wsgi_application()

# esta linha
app = application
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

گام 2:

به پوشه ریشه پروژه خود بروید و فایل را ایجاد کنید vercel.json با کد زیر:

{
  "version": 2,
  "builds": [
    {
      "src": "nomedoseuprojeto/wsgi.py",
      "use": "@vercel/python",
      "config": { "maxLambdaSize": "15mb", "runtime": "python3.9" }
    }],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "nomedoseuprojeto/wsgi.py"
    }
  ]
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نام دایرکتوری که فایل در آن قرار دارد را جایگزین “yourprojectname” کنید wsgi.py پروژه جنگو شما

توضیح (در صورت تمایل می توانید از آن صرف نظر کنید):

پرونده vercel.json نحوه ساخت و مسیریابی پروژه شما در پلتفرم Vercel را پیکربندی می کند

  • نسخه: 2: نسخه پیکربندی Vercel را تنظیم می کند (معمولاً 1 یا 2).
  • می سازد: نحوه ساخت پروژه شما را مشخص می کند.

    • src: مسیر فایل wsgi.py پروژه جنگو شما
    • استفاده کنید: از محیط Vercel یا Python استفاده کنید.
    • پیکربندی: تنظیمات مخصوص پایتون مانند حداکثر اندازه و نسخه بسته.
  • مسیرها: نحوه مسیریابی درخواست های HTTP را مشخص می کند.

    • src: تمام درخواست های HTTP.
    • مقصد: فوروارد به wsgi.py از پروژه شما

اکنون با ایجاد صحیح vercel.json، در مرحله بعد یک اسکریپت bash برای اجرای دستورات ترمینال در پلتفرم Vercel اضافه می‌کنید.

مرحله 3:

در پوشه اصلی پروژه خود، یک فایل دیگر ایجاد کنید build.sh با کد زیر:

# build.sh
echo "Starting build script"

pip install -r requirements.txt

# make migrations
python3 manage.py makemigrations
python3 manage.py migrate

# collectstatic
python3 manage.py collectstatic

echo "Build script completed"

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 4:

یک requirement.txt از تمام وابستگی های پروژه خود ایجاد کنید و اضافه کنید whitenoise در لیست، همانطور که در مثال زیر نشان داده شده است:

# outras dependências...
Django==5.0.6
whitenoise==6.7.0

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در زمان نوشتن این پست، نسخه فعلی WhiteNoise 6.7.0 است. به راحتی می توانید از نسخه جدیدتر در مورد خود استفاده کنید.

توضیح:

  • نویز سفید یک کتابخانه پایتون است که به ارائه کارآمد فایل های استاتیک در برنامه های وب کمک می کند. اغلب با جنگو برای ساده سازی پیکربندی و بهبود عملکرد هنگام ارائه فایل های ثابت مانند CSS، جاوا اسکریپت و تصاویر استفاده می شود که برای میزبانی در پلتفرم های ابری بسیار مفید است.

مرحله 5:

میان افزار whitenoise را به آن اضافه کنید settings.py پروژه شما:

'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',  # Adicione esta linha
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

محل فایل های استاتیک خود را پیکربندی کنید:

STATIC_URL = 'static/'
STATIC_ROOT = (BASE_DIR/"static/")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و اگر ترجیح می دهید، پیکربندی زیر را نیز اضافه کنید تا فشرده سازی و کش را فعال کنید و از عملکرد بهتر در برنامه خود اطمینان حاصل کنید:

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استقرار در Vercel

اکنون که محیط را آماده کرده اید، آماده استقرار پروژه خود در Vercel هستید. برای تکمیل فرآیند مراحل زیر را دنبال کنید:

1 – یک حساب کاربری در پلتفرم Vercel ایجاد کنید اگر قبلا این کار را نکرده اید
2 – مخزن git پروژه خود را وارد کنید:

توضیحات تصویر

3 – اگر پروژه شما نیاز به متغیرهای محیطی دارد، متغیرهای محیطی را پیکربندی کنید و سپس روی “استقرار” کلیک کنید.:

توضیحات تصویر

4 – منتظر فرآیند باشید:
توضیحات تصویر

5 – در نهایت، پس از تکمیل فرآیند، باید صفحه‌ای شبیه به این مشاهده کنید:
توضیحات تصویر

و بوییه! شما موفق شده اید پروژه جنگو خود را با فایل های ثابت در Vercel میزبانی کنید! موفقیت شما را تبریک می گویم، این یک قدم بزرگ است!

خود را برای سفرهای آینده آماده کنید، زیرا Vercel بدون سرور است، نمی‌توانید وظایف نوشتن را مستقیماً در Vercel انجام دهید، مانند آپلود تصاویر و ویدیوها. با این حال، نگران نباشید، در مقاله آینده نحوه انجام این کار را به صورت رایگان با استفاده از API یک پلت فرم رایگان دیگر که فایل های رسانه ای را به صورت رایگان ارائه می دهد، خواهید آموخت. 💸🫡

استفاده کنید: اگر پروژه جنگو شما از پایگاه داده SQLite استفاده می کند که عموماً در تمام پروژه های جنگو تولید می شود، نمی توانید مستقیماً در Vercel بنویسید. برای این کار باید از سرور پایگاه داده استفاده کنید. Vercel یک نمونه رایگان از PostgreSQL را ارائه می دهد که می تواند در پروژه شما پیکربندی شود.

لینک های مفید

اغلب دوباره چک کنید! ❤️ سوال؟ در قسمت نظرات این مورد را ثبت کنید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا