Musiałem niedawno rozbudować pewien portal w ten sposób, że miały pojawić się w nim strony z informacjami z różnych regionów, czyli inaczej mówiąc kilkanaście serwisów newsowych w jednym. Dodatkowo wymagana była taka funkcjonalność, że wybrane wpisy miały trafiać na stronę główną. To oznaczało, że wszystkie newsy powinny być w jednej tabeli, co w Django oznacza, że w jednym modelu.
Rzecz wydawała mi się najpierw banalna.
Dotąd w zasadzie nie zastanawiałem się nad sposobem konfiguracji Apache'a w Django, stosowałem po prostu przepis z dokumentacji. Że zastanowić się warto, uświadomił mi kolega Jakub.
Zwrócił mi on uwagę, że roboty wyszukujące spodziewają się często znaleźć plik favicon.ico w głównym katalogu czyli DocumentRoot witryny.
W zasadzie archiwa miesięczne w Django robi się w sposób banalny, gdyż biblioteka Django zawiera tak zwane widoki generyczne, czyli standardowe.
Ostatnio trochę filozofowałem, czas wrócić do konkretów :).
Kto ma za sobą pierwsze kroki w Django, czyli zrobił już bloga i poznał flatpages, stanie nieuchronnie przed problemem jak zarządzać nawigacją w nieco bardziej rozbudowanym serwisie.
Jak już pisałem, postanowiłem wypróbować Django CMS.
Ustawiłem wirtualne środowisko pythona i CMS pięknie się zainstalował poprzez easy_install django-cms.
Na początek wymyśliłem, że potestuję go na sqlite. Postanowiłem pierwsze próby wykonać na aplikacji example dostarczonej razem z 'dystrybucją' django-cms.
Rozpoczynam pracę nad większym portalem. Rozważam jakie są za i przeciw pisania od początku własnego CMS-a, w stosunku do pomysłu skorzystania z gotowego rozwiązania.
Dla mnie kluczowym argumentem za pisaniem od początku jest elastyczność otrzymanego rozwiązania. Ktoś powie, że Drupal jest też elastyczny. To jest oczywiście prawda, tak samo Wordpress. Co innego jednak obiektywna elastyczność, a co innego możliwość szybkiego skorzystania z niej w przypadku, gdy potrzebne będą nowe funkcjonalności lub jakaś modyfikacja. Oczywiście najlepiej zna się kod, który się samemu napisało ;)
Django mnie fascynuje. Elastyczność i intuicyjne zachowanie jego obiektów wprawia po prostu w euforię, gdy się odkrywa przypadkiem nowe możliwości.
Zakładając nową bazę MySQL dla Django trzeba bardzo uważać na charset i collate. Musi być zastosowane utf-8, chyba, że programista zdecyduje inaczej i wie co robi. W przeciwnym wypadku panel admina się rozsypie i będzie wywalał błędy.
Cały czas odkrywam coś nowego w Django. Luke Plant ma rację, że te wszystkie opowiadania o blogu w 20 minut, to zwykła propaganda.
Niespodzianka w Helionie! Python i Django. Programowanie aplikacji webowych. Będzie co czytać ;) Wreszcie po polsku. Jakoś tak... nie lubię języka Shakespeare'a. Nie wiem dlaczego ;)