توسعه‌های آینده و نکته‌های پایانی

شما ممکن است بخواهید پس از انتقال اوّلیّه‌ی پروژه به سرور آن را توسعه دهید یا پروژه‌های خود را برای استقرار توسعه دهید. فرآیندی تقریباً یکسان برای به‌روزرسانی پروژه‌ها وجود دارد.

ابتدا هر تغییری که مورد نیاز است در پروژه‌ی محلّی خود ایجاد می‌کنید. اگر این تغییرات به ایجاد فایل‌های جدید منجر می‌شود آن‌ها را با دستور git add . به مخزن گیت اضافه کنید. (مطمئن شوید که نقطه را در پایان دستور می‌آورید.) هر تغییری در انتقال پایگاه داده به این دستور نیاز دارد چون در هر انتقال یک فایل انتقال جدید ساخته می‌شود.

دوم تغییرات را در مخزن خود به کمک دستور git commit -am "commit message" اعمال کنید. پس از آن تغییرات را با دستور git push heroku master به سرور منتقل کنید. اگر پایگاه داده‌ی محلّی خود را هم انتقال داده باشید باید پایگاه داده‌ی در حال کار روی سرور را هم انتقال دهید. یا باید از دستورهای یک‌طرفه مانند heroku run python manage.py migrate استفاده کنید یا یک نشست ترمینال از راه دور با دستور heroku run bash باز کنید و دستور python manage.py migrate را اجرا کنید. سپس پروژه‌ی در حال کار خود را ببینید و مطمئن شوید که تغییرات مورد انتظارتان اعمال شده است یا نه.

تنظیمات SECRET_KEY

جانگو از مقدار تنظیم‌شده‌ی SECRET_KEY در settings.py برای پیاده‌سازی تعدادی از پروتکل‌های امنیّتی استفاده می‌کند. در این پروژه فایل تنظیمات خود را به همراه تنظیم SECRET_KEY اعمال کرده‌ایم. این برای پروژه‌های تمرینی خوب است امّا برای محصول نهایی باید این تنظیم را با دقّت بیشتری انجام داد. اگر پروژه‌ای می‌سازید که کاربردی جدّی‌تر دارد مطمئن شوید که درباره‌ی روش مدیریّت امن‌تر SECRET_KEY تحقیق کنید.

پاک کردن پروژه‌ای از هروکو

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

به وب‌سایت هروکو (https://heroku.com) وارد شوید؛ به صفحه‌ای که نمایانگر پروژه‌های شماست راهنمایی می‌شوید. روی پروژه‌ای که می‌خواهید پاک کنید کلیک کنید. صفحه‌ای جدید با اطّلاعاتی درباره‌ی آن پروژه خواهید دید. روی پیوند Settings کلیک کنید و پایین بروید تا به پیوندی برای پاک کردن پروژه برسید. این عمل برگشت‌پذیر نیست پس هروکو از شما می‌خواهد که با وارد کردن دستی نام پروژه درخواست پاک کردن آن را تایید کنید.

اگر کار کردن از یک ترمینال را ترجیح می‌دهید می‌توانید پروژه را با صدور فرمان destroy هم پاک کنید:

1
(ll_env)learning_log$ heroku apps:destroy --app appname

در اینجا appname نام پروژه‌ی شماست که باید چیزی شبیه به secret-lowlands-82594 یا اگر نام پروژه را عوض کرده‌اید، learning-log باشد. از شما خواسته می‌شود که نام پروژه را دوباره وارد کنید تا حذف کردن تایید شود.

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

خودآزمایی

۲۰-۳- وبلاگ زنده: پروژه‌ی بلاگی را که روی آن کار می‌کرده‌اید روی هروکو مستقر کنید. مطمئن شوید که DEBUG را برابر با False می‌گذارید تا صفحه‌های خطای کامل جانگو هنگام بروز خطا دیده نشوند.

۲۰-۴- 404های بیشتر: تابع get_object_or_404() باید در نماهای new_entry() و edit_entry() هم استفاده شود. این تغییر را ایجاد کنید و با وارد کردن آدرسی مانند http://localhost:8000/new_entry/999 بررسی کنید که آیا خطای 404 را می‌بینید یا نه.

۲۰-۵- Learning Log توسعه‌یافته: یک ویژگی جدید به پروژه اضافه کنید و تغییر را به استقرار در حال کار خود بفرستید. تغییری ساده را امتحان کنید، مثلاً در صفحه‌ی خانه کمی بیشتر درباره‌ی پروژه بنویسید. یک ویژگی پیشرفته‌تر را امتحان کنید، مثلاً این که به کاربران امکان عمومی کردن یک موضوع را بدهید. برای این کار باید مشخّصه‌ای به نام public را به مدل Topic اضافه کنید (که به صورت پیش‌فرض False باشد) و همچنین عنصری به فرم صفحه‌ی new_topic اضافه کنید که به کاربر اجازه‌ی تغییر موضوع از خصوصی به عمومی را بدهد. در ادامه باید پروژه را انتقال دهید و views.py را بازنگری کنید تا هر موضوعی که عمومی بود برای کاربران واردنشده هم قابل دیدن باشد. فراموش نکنید که پایگاه داده‌ی در حال کار را هم پس از ارسال تغییرات به هروکو انتقال دهید.