چندی پیش یک بسته جامع آموزش جنگو (+) در هم رویش منتشر شد. این آموزش پروژه محور بود و از صفر تا انتشار وب سایت در سرور پیش رفت. فصل آخر بسته مذکور به آموزش انتشار پروژه جنگو در سرور آنلاین ( ارسال پروژه جنگو به heroku ) اختصاص داشت. امروز این فصل به صورت یک بسته مستقل برای علاقهمندان مبحث انتشار آنلاین منشتر میشود. تا کسانی که میخواهند صرفا با فرآیند انتشار وب سایت در سرور آشنا شوند بتوانند به صورت مستقل از این آموزش استفاده کنند.
روزآمدی: از اواخر سال ۲۰۲۲ هروکو دیگر طرح رایگان ندارد. محتوای این بسته البته همچنان برای دپلوی روی هروکو معتبر است ولی جون اغلب ما ابرانیان امکان خرید بینالمللی نداریم، این آموزش را رایگان کردیم تا صرفا جهت کسب تجربه و آشنایی با فضای این سیستم جهانی بهره ببرید.
آنچه میآموزید
در این آموزش شما نخست با یک سرویس دهنده با امکان دریافت سرور رایگان به نام Heroku آشنا میشوید. هروکو یک سرویس دهنده حرفهای با پلن پایه رایگان و پلن های بهادار حرفه ای برای میزبانی پروژه های جنگو و دیگر پلتفرمهای نامآشنای وب است.
به منظور ارسال جنگو به heroku، نخست مفاهیم لازم برای انتشار سایت در سرور آنلاین را میآموزید. سپس میآموزید که چگونه پروژه خود را با گیت Git مدیریت نسخه کنید. آنگاه مدرس به آموزش انتشار سایت جنگو در اینترنت و سرور هروکو به کمک گیت میپردازد.
پس از آن که پروژه خود را روی سرور بارگذاری کردید، کاربران اینترنت میتوانند با اجرای نام دامنه وب سایت شما را مشاهده و استفاده کنند. میتوانید بدون صرف هزینه برای اجاره سرور پروژه جنگوی خود را منتشر کنید. همچنین میآموزید که چگونه نام اختصاصی خود را برای دامنه وب سایت انتخاب کنید.
در ادامه این آموزش، مدرس هم رویش به بیان نکات تکمیلی میپردازد. پایگاه داده پیش فرض جنگو از نوع SQLite است و باید به سروری با پایگاه داده پیش فرض PostgreSQL نگاشت شود. دیتابیس را Migrate و به سرور ارسال میکند. همچنین میآموزید که صفحههای خطای 404 و 500 چه هستند و چگونه میتوان آنها را با قالب وب سایت خود نمایش داد.
در خلال این آموزش ضمن اجرای مقصود اصلی با مفاهیمی چون Heroku CLI و psycopg و Gunicorn و Django-heroku و eroku config:set KEY=VALUE به صورت عمیق آشنا میشوید. یاد میگیرید که WSGI Server چیست؟ این مفاهیم به صورت عمیق آموزش داده میشود.
ویژگی مهم این آموزش این است که شما با استفاده از آن میتوانید پروزه خود را روی یک سرور رایگان منتشر کنید و بدون هزینه طعم انتشار آنلاین وب سایت یا وب اپلیکیشن خود را بچشید.
کلیدواژگان
ارسال پروژه جنگو به heroku –
فائزه هاشمی (خریدار محصول) –
سلام و روزبخیر خدمت استاد آصفی، من نمی تونم در سایت heroku ثبت نام کنم فیلتر شکن هم روشنه خطا میده که مشکلی پیش اومده بعدا امتحان کنید، چیکار کنم؟
عسکرزاده –
سلام
من در بخش ادمین هنگامی که میخوام داده جدید سیو کنم(پی دی اف و عکس) ارور h13 میده در حالی که در فایل requirements نسخه جنگو و gunicorn پایین اوردم و در Procfile تایم اوت ۳۰ثانیه تنظیم کردم.
اپ در هروکو ام ریستارت کردم درست نشد.
لطفا راهنمایی کنید
at=error code=H13 desc=”Connection closed without response” method=POST
مصطفی آصفی –
سلام به شما خانم عسکری زاده. سوالتون البته از محتوای آموزش نیست و شما هم ظاهرا با این ایمیل فراگیر این بسته نیستید.
با این حال بنده اگه بخوام راهنمایی کنم توصیه می کنم که گوگل کنید خطا رو. الان در مورد این خطا اگه مستقیم گوگلش کنید برای مثال ممکنه این پاسخ در استک اورفلو (+) کمکتون کنه.
مریم (خریدار محصول) –
سلام.من میتونم deploy کنم ولی the site can t reach میده.میشه راهنمایی کنید.
مصطفی آصفی –
سلام به شما. ببینید این خطا ممکنه علت های مختلفی داشته باشه. ولی معمولا بر می گرده به تنظیم ENV که باید تو مد پروداکشن به درستی تنظیم بشه. مراحل رو با دقت بیشتری مثل من پیش برین و خطایی که تو ترمینال می گیرین رو گزارش کنید تا بهتر بتونم نظر بدم.
اشکان –
سلام استاد برای کاستوم گزاشتن دامین باید احراز هویت کنیم تو اموزش که یاد دادین می خواستم بدونم روشی رو یاد میدین که از ایران بتونیم احراز هویت کنیم؟
مصطفی آصفی –
سلام به شما. خیر متاسفانه همون طور که تو ریز سرفصلها نوشتم این موضوع گفته نشده.
مونا اصغری (خریدار محصول) –
سلام پروژه من جنگو و فرانت اون ریعکت هست ، دیتابیس هم postgres
با این آموزش پروژه رو روی هروکو پوش کردم اما وقتی سایت بالا میاد network error میده و عکسهای صفحه اول و اطلاعات نمایش داده نمیشه ولی هدر سایت هست ، سمت لوکال پروژه بالا میاد ولی در هروکو اینطور هست . لطفا راهنمایی میفرمایید؟
مصطفی آصفی –
سلام به شما. ببینید ما اینجا بحث ارسال پروژه با دو فرانت اند و بک اند مجزا رو نگفتیم. داستانش کمی متفاوته. به نوعی سوالتون از سرفصل این آموزش خارجه و خودش نیاز به آموزش جداگانه ای داره. بنده یادداشت کردم که تو آموزش ساخت فروشگاه که جنگو و ری اکت کنار هم هستن در موردش صحبت کنم.
با این حال دعوتتون می کنم برای این که زمان رو از دست ندید مواردی مثل این آموزش (+) رو ببینید.
مهزیار نوری –
سلام وقت بخیر موقع push کردن به هروکو با دستور git push heroku master به ارور رسیدم که وقتی سرچ زدم نوشته بود buildpack نصب کنم ولی بازم جواب نداد!!! لطفا راهنمایی کنید.https://stackoverflow.com/questions/67022960/i-get-remote-rejected-error-when-i-try-to-push-my-app-to-heroku
مصطفی آصفی –
سلام و وقت شما هم بخیر. باید دید خطایی که دریافت می کنید چه جزئیاتی داره. ممکنه به دلیل نداشتن VPN سرور هروکو پس بزنه. ممکنه اسم مخزنی که گذاشتید با چیزی که می خواید پوش کنید متفاوت شده.
ymnopq@gmail.com (خریدار محصول) –
سلام آقای آصفی عزیز. خیلی ممنون از آموزش خوب و با کیفیتتون. فقط مشکلی که من دارم. وقتی DEBUG رو False میکنم بهم ارور 500 میده. تو نت سرچ کردم میگن برای امنیتشه و باید قسمت allowed host پر بشه ولی اونم پر میکنم باز همین ارور رو دارم و باید دیباگ رو true کنم تا کار کنه. ممنون میشم اگر بنده رو راهنمایی بفرمایید
مصطفی آصفی –
سلام و ممنون از محبت شما.
اطلاعات زیادی ندادین. این که خطای ترمینال که دریافت می کنید چیه و این که روی Deploy هستید یا Development.
توصیه می کنم با توجه به این توضیح در مستندات جنگو (+) این خط رو به تنظیمات پروژه اضافه کنید:
DEBUG_PROPAGATE_EXCEPTIONS = True
امیر مهدی اسدی –
با عرض سلام مجدد استاد عزیز ممنونم از پاسختون
مصطفی آصفی –
سلام مجدد. خواهش می کنم وظیفه ست. امیدوارم راهگشا بوده باشه.
امیر مهدی اسدی –
با عرض سلام خدمت استاد آصفی ارجمند،
جناب مهندس بنده پروژه رو بر روی هروکو پوش کردم اما زمانی که پروژه رو باز میکنم برنامه کراش میکند،در قسمت لاگ ها یک اروری با عنوان زیر نمایش داده میشه.
<Module Not Found Exemption: No Module Named :"django.contrib.admin.templattags.admin_static"ممنون میشم اگر راهنمایی بفرمایید.
سپاس فراوان
مصطفی آصفی –
سلام به شما و پوزش از تاخیر. نکته اول این که مطمئن بشید که ‘django.contrib.staticfiles’ در INSTALLED_APPS حتما موجود باشه.
نکته دوم این که در جنگوی 3 بخش django.contrib.staticfiles.templatetags مطابق این توضیح (+) حذف شده.
برای رفع مشکل به فایل \Python38\Lib\site-packages\suit\widgets.py مراجعه کنید در اسکریپت پایتون اجرایی (venv) خودتون. و این ایمپورت
# from django.contrib.admin.templatetags.admin_static import static
رو با این ایمپورت
from django.contrib.admin import static
جایگزین کنید.
امیرحسین علیجانی –
سلام مجدد و ممنونم بابت پاسخگویی عالیتون
امیرحسین علیجانی –
سلام جناب مهندس
بی شک با توجه به سوابق درخشان شما مطمئن هستم که این دوره کیفیت بالایی داره
اما قبل از تهیه خواستم بپرسم که ایا سرور heroku قادر هست که دیتابیس postgres روی اون کار کنه؟
ممنون میشم پاسخ بدید .
مصطفی آصفی –
سلام به شما. بله جناب علیجانی اصلا دیتابیس پایه در هروکو PostgerSQL هست. در این دوره در این رابطه هم صحبت شده. دیتابیس پروژه مورد بحث برای ارسال اینجا SQLite بود که توضیح دادم با نصب یک کتابخونه خود سرویس Heroku حین ارسال زیرساخت لازم برای تبدیل این دیتابیس به Postgres رو فراهم می کنه (سرفصلها رو مطالعه بفرمایید).
رضایی –
سلام. ممنون از آموزش خوبتون. مدتها دنبال سرور رایگان برای پروژه هستم. فقط این سرور برای ایران کار می کنه؟
مصطفی آصفی –
سلام و ممنون از لطف شما. بله میتونید استفاده کنید. نکتههای لازم برای ثبت نام و استفاده از پلن رایگان در بخشهای مختلف آموزش به اقتضای شرایط گفته شده.