„Framework witryn” na pojedynczej instancji django
Chcę obsługiwać specjalistyczne kanały RSS w innej subdomenie niż reszta witryny.
Czy mogę użyć struktury witryn do używania innego pliku urls.py i settings.pyw jednej instancji django. czy muszę ustawić dwie lokalizacje apache i po prostu ustawić różne pliki settings.py w conf.
Powodem, dla którego muszę skonfigurować dwa pliki urls.py, jest uniknięcie duplikowania treści. Nie chcę, aby główna witryna była dostępna w rss.example.com, a nie chcę, aby wyspecjalizowane kanały były dostępne na example.com
Obsługa ich z pojedynczej instancji django byłaby idealna, ponieważ jesteśmy na współdzielonym hostingu z ograniczoną pamięcią i wydaje się, że takim marnotrawstwem jest posiadanie otwartej instancji, która obsługuje tylko rss.
edytować: Doszedłem do wniosku, że wiele instancji z oddzielnymi plikami urls.py byłoby dla mnie najłatwiejsze ... ale znalazłem ten artykuł opisujący, jak to zrobić za pomocą pojedynczej instancji:
http://effbot.org/zone/django-multihost.htm
Rozwiązanie:Tupperware DjangoSkończyło się na napisaniu frameworka do uruchamiania wielu kopii witryny na pojedynczej instancji django.
Podstawową ideą jest zmianaSITE_ID
ustawianie w locie dla każdego żądania i ładowanie alternatywnych ustawień z bazy danych. Robi to w oparciu o domenę i zastosowaniaSITE_ID = 1
domyślnie (gdy nic nie może znaleźć)
Wszystkie ustawienia w pliku settings.py działają jak ustawienia domyślne, które są zastępowane przez ustawienia zapisane w bazie danych dla bieżącej witryny.
Działa całkiem nieźle :) i działa w produkcji whttp://rootbuzz.com