Pierwsze prywatne dzieło na django

Aktualizacja: Niestety biznes nie do końca wypalił więc strona jest zdjęta, ale może kiedyś umieszczę kod

 

Dla salonu kosmetycznego mojej żony przygotowałem stronę opartą na frameworku django.

Użyłem kilka ciekawych technik i komponentów, które moim zdaniem warto znać i używać:

  1. Django – sam framework jest ciekawy no ale nie będę się rozpisywał na temat wszystkich funcjonalności. Zainteresowanych odsyłam do strony https://www.djangoproject.com/ oraz tutoriala https://docs.djangoproject.com/en/1.4/intro/tutorial01/
  2. South – świetny system do automatycznego generowania zmian w modelach i migracji tych zmian do bazy danych. Za pomocą prostych komend system automatycznie tworzy plik, który zawiera informacje na temat zmian bazy danych oraz informacją ze sposobem wycofania tych zmian. Samodzielnie także wersjonuje te zmiany z podziałem na poszczególne aplikacje
  3. Pipeline – rewelacyjne narzędzie, dzięki ktoremu można uzyskać niezłego kopa na wydajności. System zajmuje się między innymi zmniejszaniem oraz grupowaniem w jeden plik zestawów plików statycznych takich jak JS i CSS a także zadba o odświeżenie nowej wersji obrazków, które mają tę samą nazwę (dodaje hash do nazwy). Można także zastosować kompilację plików CoffeScript oraz Sass i Less.
  4. Media queries – Strona posiada 5 alternatywnych widoków w zależności od szerokości okna/urządzenia. Dzięki zastosowaniu natywnego media queries działą to sprawnie i szybko
  5. Geo Lokalizacja – Natywny system, który posiadają nowoczesne przeglądarki pozwalający na podanie współrzędnych położenia danego komputera. Dzięki połączeniu techniki z mapami google można wytyczyć trasę do pokonania między użytkownikiem a salonem
  6. Debug Toolbar – Wspomagacz dla developerów do django. Pojawia się w postaci dyskretnego bloczka do rozwinięcia, który zawiera wszystkie niezbędne informacje do debugowania aplikacji m.in. wykonanie zapytania, użyte sygnały, zmienne środowiskowe, zmienne żądania i odpowiedzi i wiele innych ciekawych danych
  7. Admin Tools – System, który rozbudowuje standardowego admina django o dodatkowe możliwości. Poprawia wygląd i interfejs oraz dodaje możliwość zarządzania panelami oraz tworzenia własnych paneli oraz menu
  8. UUslug – System slugowania dla tekstów oraz jako typ kolumny modelu z pełną obsługą utf-8
  9. TinyMCE – znany i popularny edytor wysiwyg. Oczywiście nie mogło zabraknąć aplikacji, która integruje go do django. Użyty jest w backendzie.


Istotne dla mnie było aby strona posiadała ładne i przyjazne adresy. Z django to nie problem bo i tak definiuje się adresy widoków samodzielnie. Ale zależało mi także aby wyeliminować z adresów rozpoznawanie stron z użyciem identyfikatora primary key itd. Zastosowałem więc technikę slugowania. Każda strona z kategorii ma swój własny slug który nie jest w konflikcie z innymi. Dzięki temu w łatwy i przyjemny sposób można prezentować adresy, np tak:

/kosmetyka/pielegnacja-twarzy

zamiast

/kosmetyka,4/pielegnacja-twarzy,16

Django posiada także wbudowany cache. Zastosowałem cache dla stron katalogowych dzięki czemu wyeliminowałem znaczną część zapytań.