Как создать многосайтовый django с одной базой данных?

Я хочу создать несколько сайтов на сервере с одной базой данных. Моя структура такова:

main_domain.com/
main_domain.com/website1
main_domain.com/website2
.
.
main_domain.com/website_n

Некоторое содержимое является общим для разных сайтов. Я использую Django 3 Какова наилучшая практика для этого.

Простое использование урлов django кажется достаточно хорошей практикой:

from django.urls import path

urlpatterns = [
    path('website1', viwes.website1),
    path('website2', viwes.website2),
    ...
    path('website_n', viwes.websiten),
]

В зависимости от того, сколько у вас сайтов и насколько они разные. Вы можете рассмотреть возможность использования 1, 2, ..., n в качестве параметра запроса, если все страницы используют одно и то же содержание с небольшими изменениями в зависимости от номера:

path('website/<website_id>/', views.website_view),

Затем вы можете получить параметр запроса в вашем представлении следующим образом:

def website_view(request, website_id):
     pass

И так передайте website_id, чтобы изменить содержимое вашего сайта так, как вы хотите. Опять же, это зависит от того, что может понадобиться вашему проекту, первый подход может быть достаточно хорош.

Вернуться на верх