Как локально протестировать Платформу Сайтов Django

У Django есть платформа сайтов для поддержки нескольких веб-хостинг от единственной установки Django.

РЕДАКТИРОВАНИЕ (ниже неправильное предположение о системе),


Я понимаю, что промежуточное программное обеспечение устанавливает настройки. SITE_ID оценивают на основе поиска/кэша домена запроса.


ENDEDIT

Но при тестировании локально, я по http://127.0.0.1:8000/, не http://my-actual-domain.com/

Как я локально просматриваю свои различные сайты во время разработки?

9
задан Daniel Rhoden 13 April 2017 в 02:46
поделиться

2 ответа

Создайте отдельный файл settings.py для каждого сайта, включая соответствующую настройку SITE_ID . Конечно, вы можете использовать импорт для совместного использования общих настроек между файлами.

Отныне при запуске сервера разработки Django укажите опцию --settings, чтобы сообщить Django, какой сайт будет запущен.

Например (если предположить, что у вас есть два файла настроек - settings_first.py и settings_second.py):

manage.py runserver --settings settings_first

запустит первый сайт, а

manage.py runserver --settings settings_second

предоставит вам доступ ко второму сайту.

Вы также можете запустить их одновременно, указав разные порты:

manage.py runserver 8001 --settings settings_first

manage.py runserver 8002 --settings settings_second

Вышеприведенные команды (запущенные на двух разных консолях) сделают доступным первый сайт под http://127.0.0.1:8001/, а второй под http://127. 0.0.1:8002/

18
ответ дан 4 December 2019 в 10:03
поделиться

С тех пор, как я задал вопрос, я наткнулся на эти посты:

Спирос Цавеллас говорит об использовании признака в качестве открытого интерфейса и типа себя в качестве помощника, который должен быть смешан классом реализации.

В заключение, если мы хотим двигаться реализации методов внутри признаков тогда мы рискуем загрязнить интерфейс из этих признаков абстрактными методами в поддержку осуществления конкретные методы и не связаны между собой с основной ответственностью черта. Решение этой проблемы: для перемещения этих абстрактных методов в другие признаки и составить признаки вместе с помощью аннотаций собственного типа и множественное наследование.

Например:

trait PublicInterface { this: HelperTrait =>
  // Uses helperMethod
}

trait HelperTrait {
  def helperMethod = // ...
}

class ImplementationClass extends PublicInterface with HelperTrait

Экскурсия по Scala обсуждает использование аннотаций собственного типа с элементами абстрактного типа - предположительно, невозможно расширить член абстрактного типа (?)

-121--1179009-

Я написал сценарий для этого немного назад. Вы можете найти его здесь: https://gist.github.com/dound/76ea685c05c4a7895247457eb676fe69

(исходная запись, которую можно просмотреть из archive.org: https://web.archive.org/web/20160208235904/http ://dound.com: 80/2009/04/git-forever-remove-files-or-folders-from-history/)

Сценарий построен на инструменте git-filter-branch , который поставляется с git. Если вам интересно, вы можете прочитать больше об удалении файлов из гит репо здесь , но использование скрипта из ссылки выше должно быть легким и все, что вам действительно нужно для удаления этой частной информации.

-121--2730561-

Возможно, документация вводит вас в заблуждение. Вы написали:

Я понимаю, что промежуточное ПО задает настройки. SITE_ID значение на основе поиска/кэша домена запроса.

Это не так. Это работает именно наоборот. Джанго использует настройки. SITE_ID значение для поиска правильного объекта Site в базе данных. Это возвращает предпочитаемый домен и имя сайта.

Приложение sites было разработано для заполнения (на мой взгляд) редкой базы данных, в которой требуется иметь несколько сайтов с одной базой данных в фоновом режиме. Это позволяет публиковать одни и те же статьи на разных сайтах, но при этом обладает той гибкостью, что некоторые модели доступны только для одного сайта.

Для разработки нескольких проектов (которые фактически не используют инфраструктуру сайтов) не нужно указывать ничего особенного. Можно использовать значение по умолчанию SITE _ ID , равное 1 . Для использования представления администратора на веб-сайте можно установить в базе данных разработки домен сайта на localhost: 8000 .

Если требуется разработать несколько сайтов с использованием одной и той же базы данных (и использовать инфраструктуру сайтов), необходимо иметь каждый проект с определенным SITE _ ID , но одинаковыми параметрами базы данных.Значения САЙТОВ _ ID в каждом проекте на компьютере разработки в большинстве случаев совпадают с значениями для производственных серверов.

3
ответ дан 4 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: