اذهب إلى المحتوى
  • 0

أريد عمل subdomain ب django

Ecommerce Vente

السؤال

Recommended Posts

  • 1

نعم توجد حزمة مشهورة تدعى django-hosts ، يمكتك من خلالها عمل host routing بطريقة سهلة وسلسة وذلك بعدة خطوات :

  1. تحميل الحزمة من خلال مدير الحزم pip 
    pip install django-hosts
    

     

  2. بعد ذلك يجب إضافة 'django_hosts' إلى إعدادات INSTALLED_APPS 

  3. ضبط إعدادات MIDELLWARE 

    MIDDLEWARE = [
       ' django_hosts.middleware.HostsRequestMiddleware',#في أول الإعدادات
    #... other middleware
       'django_hosts.middleware.HostsResponseMiddleware',# في أخر الإعدادات
        
     
    
    ]

     

  4. إضافة module إسمه hosts.py بجانب ملف settings 

    from django.conf import settings
    from django_hosts import patterns, host
    
    host_patterns = patterns('',
        host(r'www', settings.ROOT_URLCONF, name='www'),
        host(r'(\w+)', 'path.to.custom_urls', name='wildcard'),# ضبط المسار حسب اسم مشروعك
    )

    ملف hosts.py يعمل مثل urls.py فقط يدير إعدادات dns ، هنا ، سيتم توجيه الطلبات إلى www.example.com كالمعتاد ولكن يتم توجيه طلب "admin.example.com " إلى path.to.custom_urls . 

  5. في templates ، يمكنك استخدام علامة نموذج host_url () لعكس عنوان URL بالطريقة التي اعتدت عليها مع علامة قالب عنوان URL لـ Django:

    <a href="{% url 'homepage' %}">الرئيسية</a> |
    <a href="{% url 'account' host 'wildcard' request.user.username %}">حسابي</a> |

     

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

توجد الحزمة django-subdomains، حيث يمكنها القيام بما تريد.

لتنزيل هذه الحزمة نقوم بتنفيذ التعليمة:

pip install django-subdomains

لجعل هذه المكتبة تعمل يجب ضبط بعض الإعدادات كما يلي:

  1. إضافة الطبقة الوسطية middleware الخاصة بهذه المكتبة ضمن الملف settings في القائمة الخاصة بالطبقات الوسطية، و ذلك بالاسم التالي: subdomains.middleware.SubdomainURLRoutingMiddleware و يجب أن تأتي هذه الطبقة قبل طبقة ال CommonMiddleware في حال وجدت.
  2. ضبط إعدادات SUBDOMAIN_URLCONFS في ملف ال settings.
  3. التأكد من أن SITE_ID قد تم تعريفه و أن الخاصية Site.domain لذلك الموقع تتعلق باسم الدومين الذي سيقوم المستخدمون بالوصول للموقع من خلاله.
  4. إذا أردت استعمال ذلك في ال template مع التاغ {% url %} فيجب وضع subdomains في قائمة التطبيقات في ال settings.

مثال على إعدادات لذلك:

ROOT_URLCONF = 'myproject.urls.account'
# في هذا القاموس إن المفتاح يمثل الدومين الفرعي
SUBDOMAIN_URLCONFS = {
    None: 'myproject.urls.frontend',  # هنا لا يوجد دومين فرعي
    'www': 'myproject.urls.frontend',
    'api': 'myproject.urls.api',
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...