نام دامنه

سلام برای توسعۀ یک برنامه توسط جنگو و به شیوۀ صحیح لازم است تا یک دامنه ثبت کنیم. این کار در زمان تنظیم سرور ایمیل، پیکربندی برنامه و گواهینامۀ https ضروری است. برای ثبت دامنه می توانید به سایت tamadon.org مراجعه کنید و برای مثال از دامنه های ارزانتر نظیر ir با قیمت ۱۰ هزارتومان […]

کتابخانه ها و سایر موارد مورد نیاز

سلام با توجه به اینکه پایتون و کتابخانه های وابسته به آن بسیار ناز دارند!! لازم است دقیقا همان نسخه ای نصب شود که بر اساس آن برنامه نویسی شده. بنابراین ذخیرۀ این موارد برای نصب برنامه روی ماشین جدید ضروری است. با دستور زیر کتابخانه های پایتون که روی سیستم نصب شده است به […]

تنظیمات پروژه

سلام فارغ از اینکه ریپازیتوری شما به صورتی عمومی یا خصوصی باشد هرگز نباید اطلاعات حساس خود را روی مخزن راه دور ارسال کنید. این اطلاعات شامل کلیدهای خصوصی، کلیدهای رمزنگاری، پسوردها، کلیدهای API و … می شود. در این مرحله می خواهیم دو مدل پیکربندی را در ماژول settings.py انجام دهیم. اطلاعات حساس نظیر […]

ورژن کنترل | Version Control

سلام به آخرین فصل خوش آمدید. در این فصل می خواهیم برنامۀ خود را روی سرور منتشر کنی. همچنین قصد داریم یک سرور ایمیل و گواهینامۀ https را برای سرورمان پیکربندی کنیم. این پروژه قبلا در آدرس djangoboards.com آنلاین شده و می توانید به آن مراجعه کنید. کنترل ورژن در مهندسی نرم افزار یک مفهوم […]

آخرین تنظیمات

سلام شاید از قبل متوجه این موضوع شده باشید که وقتی فردی پاسخی را برای یک پست ارسال می کند فیلد last_update بروز رسانی نمی شود. حالا می خواهیم این مورد را درست کنیم. boards/views.py @login_required def reply_topic(request, pk, topic_pk): topic = get_object_or_404(Topic, board__pk=pk, pk=topic_pk) if request.method == ‘POST’: form = PostForm(request.POST) if form.is_valid(): post […]

تصویر پروفایل یا آواتار

سلام یکی از ساده ترین راه ها برای اضافه کردن تصویر پروفایل استفاده از Gravatar است. داخل فولدر boards/templatetags فایلی با نام gravatar.py ایجاد می کنیم. boards/templatetags/gravatar.py import hashlib from urllib.parse import urlencode from django import template from django.conf import settings register = template.Library() @register.filter def gravatar(user): email = user.email.lower().encode(‘utf-8’) default = ‘mm’ size = […]