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

021-71053903 [email protected] پشتیبانی از شنبه تا چهارشنبه ساعت 9 الی 16

آموزش ساخت Subdomain در جنگو

آموزش ساخت SubDomain در جنگو

مقدمه

با سلام خدمت تمامی شما مخاطبین خوب وبسایت پایتونی ها با یک مقاله آموزشی دیگر در خدمت شما دانش پذیران هستیم تا در این مقاله آموزشی به ساخت زیر دامنه های یک وبسایت با استفاده از جنگو بپردازیم.

زیر دامنه ها به دلایل مختلفی استفاده می شوند. برای مثال، اگر صاحب دامنه website.com هستید، وبلاگ می‌تواند در زیر دامنه blog.website.com و فروشگاه تجارت الکترونیک در store.website.com باشد.

با این حال، مهم است که به خاطر داشته باشید موتورهای جستجو مانند گوگل، زیر دامنه ها را به عنوان سایت های جداگانه مستقل از دامنه اصلی می بینند.

اگر می خواهید سایت خود را از طریق رتبه بندی جستجوی مرورگر رشد دهید، توصیه می کنیم از زیر شاخه ها استفاده کنید.

دایرکتوری‌های فرعی، مانند website.com/blog، مسلماً برای سئو بهتر هستند، زیرا تمام صفحات ایجاد شده در زیر شاخه، بخشی از سایت اصلی در نظر گرفته می‌شوند.

اما اگر علاقه مند هستید که کاربران را مستقیماً از طریق تبلیغات به سایت تجارت الکترونیک خود بفرستید یا سایت خود را برای مخاطبان حرفه ای جلوه دهید، ممکن است یک زیر دامنه گزینه بهتری باشد.

در این مقاله، ما قصد داریم تنظیمات مورد نیاز برای راه‌اندازی و اجرای یک ساب دامین در پروژه جنگو را بررسی کنیم. با mysite پروژه جنگو، ما دو برنامه ایجاد خواهیم کرد، یکی به نام اصلی و دیگری با نام وبلاگ. برنامه وبلاگ به blog.website.com متصل می شود در حالی که برنامه اصلی در صورت درخواست website.com ظاهر می شود.

 

یک پروژه جنگو و برنامه اصلی ایجاد کنید

ترمینال macOS

(env)User-Macbook:env user$ pip install django==2.1.15

(env)User-Macbook:env user$ django-admin startproject mysite

(env)User-Macbook:env user$ cd mysite

(env)User-Macbook:mysite user$ python3 manage.py startapp main

Windows Command Prompt

(env)C:\Users\Owner\desktop\env> pip install django==2.1.15

(env)C:\Users\Owner\desktop\env> django-admin startproject mysite

(env)C:\Users\Owner\desktop\env> cd mysite

(env)C:\Users\Owner\desktop\env\mysite> py manage.py startapp main

هنگامی که محیط مجازی شما ایجاد و فعال شد، جنگو را نصب کنید، پروژه mysite را ایجاد کنید، سپس برنامه main را ایجاد کنید. برای سادگی، پروژه جنگو همیشه به عنوان mysite نامیده می شود. اگر قبلاً یک برنامه دارید، از ایجاد یک برنامه وبلاگ در مقاله صرف نظر کنید.

اگر تازه وارد جنگو شده اید، به این راهنمای مبتدی مراجعه کنید. در غیر این صورت، تنظیمات برنامه خود را پیکربندی کنید و الگوهای HTML، URL ها و viewهای مورد نیاز را اضافه کنید.

سپس، وقتی آماده شدید، می توانیم به برنامه وبلاگ برویم.

 

یک برنامه جدید به نام وبلاگ ایجاد کنید

ترمینال macOS

(env)User-Macbook:mysite user$ python3 manage.py startapp blog

Windows Command Prompt

(env)C:\Users\Owner\desktop\env\mysite> py manage.py startapp blog

با پیکربندی برنامه اصلی، به CLI خود بازگردید و یک برنامه جدید به نام وبلاگ ایجاد کنید. این برنامه ای است که به زیر دامنه blog.website.com متصل می شود.

 

آدرس های وبلاگ را ایجاد کنید

from django.urls import path
from . import views

app_name = "blog"   


urlpatterns = [
    path("", views.homepage, name="homepage"),
]

مشابه پیکربندی های انجام شده برای main، باید یک فایل URL به وبلاگ برنامه اضافه کنید.

از آنجا، باید برنامه را به لیست برنامه های نصب شده در تنظیمات اضافه کنید، الگوها و نماهایی را ایجاد کنید که به مسیرهای URL شما متصل می شوند. اگر می‌خواهید درباره تنظیم قالب‌ها، نماها و URL‌های خود اطلاعات بیشتری کسب کنید، تنظیمات جنگو را ببینید.

 

بسته django-hosts را نصب کنید

ترمینال macOS

(env)User-Macbook:mysite user$ pip install django-hosts

Windows Command Prompt

(env)C:\Users\Owner\desktop\env\mysite> pip install django-hosts

هنگامی که دو برنامه شما پیکربندی شدند، می توانید از django-host استفاده کنید. django-hosts که توسط jazzband ایجاد شده است، برنامه ای است که برای هدایت درخواست ها به طرح های URL مختلف تعریف شده در فایل hosts.py طراحی شده است.

 

برنامه را در تنظیمات به برنامه های نصب شده اضافه کنید

env > mysite > mysite > settings.py

INSTALLED_APPS = [
    'main.apps.MainConfig',
    'blog.apps.BlogConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_hosts',             
]

به فایل settings.py بروید و django_hosts را به لیست برنامه های نصب اضافه کنید. همانطور که می بینید، برنامه های اصلی و وبلاگ نیز در بین برنامه های نصب شده لیست شده اند.

 

env > mysite > mysite > settings.py

MIDDLEWARE = [
    'django_hosts.middleware.HostsRequestMiddleware',
    ...
    'django_hosts.middleware.HostsResponseMiddleware',
]

سپس میان افزار فهرست شده در زیر برنامه های نصب شده را پیدا کنید و HostsRequestMiddleware را به بالای لیست و HostsResponseMiddleware را به انتهای لیست اضافه کنید.

 

فایل host را ایجاد کنید

env > mysite > mysite > (New File) hosts.py

from django_hosts import patterns, host

host_patterns = patterns(
  '',
    host(r'', 'mysite.urls', name=' '),
    host(r'blog', 'blog.urls', name='blog'),
)

حالا فایل Python hosts.py را در همان پوشه settings.py ایجاد کنید. در این فایل، الگوها و میزبان را از django_hosts وارد کنید و سپس host_patterns را مشخص کنید. الگوهای میزبان، زیر دامنه ها هستند. الگوی میزبان خالی همه دامنه‌های موجود در mysite.urls هستند در حالی که الگوی وبلاگ وبلاگ زیر دامنه است.

 

برنامه را در تنظیمات به برنامه های نصب شده اضافه کنید

env > mysite > mysite > settings.py

ROOT_HOSTCONF = 'mysite.hosts'

DEFAULT_HOST = ' '

در این مرحله، ما باید بقیه تنظیمات را اضافه کنیم. ROOT_HOSTCONF را اضافه کنید و آن را برابر با مسیر hosts.py قرار دهید. سپس DEFAULT_HOST=’ ‘ را اضافه کنید. میزبان پیش‌فرض نام الگوی میزبان است که اگر الگوی دیگری با یک درخواست مطابقت نداشته باشد، فراخوانی می‌شود.

 

env > mysite > mysite > settings.py

ALLOWED_HOSTS = [
    '127.0.0.1',
    ...
    'blog.localhost',
    ]

آخرین کاری که باید انجام دهیم این است که host blog.localhost را به لیست میزبان های مجاز در تنظیمات اضافه کنیم. اگر فراموش کردید این میزبان را اضافه کنید، حتی پس از افزودن یک میزبان DNS محلی برای زیر دامنه، به وبلاگ در مرورگر محلی دسترسی نخواهید داشت.

 

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

اگر سرور را اجرا کنید و به 127.0.0.1:800 مراجعه کنید، برنامه اصلی نمایش داده می شود.

اما برای رسیدن به برنامه وبلاگ، باید به blog.local:8000 مراجعه کنیم. اگر سعی کنید به این صفحه دسترسی پیدا کنید، بارگیری نمی شود. دلیل آن این است که هیچ میزبان DNS محلی وجود ندارد که مطابقت داشته باشد. باید آن را به لیست هاست ها اضافه کنیم.

 

برای ویندوز:

روی نماد ویندوز در گوشه سمت چپ پایین صفحه خود کلیک کنید. سپس اپلیکیشن Notepad را جستجو کنید.

قبل از باز کردن برنامه، روی فلش رو به پایین در زیر “Open” کلیک کنید و “Run as administrator” را انتخاب کنید.

هنگامی که Notepad باز شد، روی File > Open کلیک کنید و به This PC/Local Disk/Windows/System32/drivers بروید و پوشه “etc” را انتخاب کنید.

اگر هیچ فایلی در پوشه “etc” نمایش داده نمی شود، باید “Text Documents” را در منوی کشویی به “All Files” تغییر دهید.

سپس می توانید فایلی به نام “hosts” را انتخاب و باز کنید.

 

This PC > Local Disk > Windows > System32 > drivers > etc > hosts

# localhost name resolution is handled within DNS itself.
# 127.0.0.1       localhost
# ::1             localhost
# 127.0.0.1       blog.localhost

محل لیست شدن localhost 127.0.0.1 را پیدا کنید، سپس یک لوکال هاست جدید به نام blog.localhost اضافه کنید. فایل را حتما ذخیره کنید.

 

برای macOS:

برای کاربران مک، روند مشابه است.

System Preferences > Network (Choose your network connection) > Advanced > DNS

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1             localhost

127.0.0.1 blog.localhost

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

محمدرضا حسنی

224 مطلب منتشر شده

دانش آموخته رشته فناوری اطلاعات / موسس پایتونی ها

درباره این مطلب نظر دهید !

مطالب پرمخاطب پایتونی ها

tag html

Tag (HTML قسمت دوم)

2
دقیـقه مطالعه
ادامه ...

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

%69
تخفیف

آموزش برنامه نویسی پایتون

35,000 تومان
6
%60
تخفیف

آموزش فیگما (Figma)

30,000 تومان
3