Jakiś czas temu (prawie rok) pisałem w SDJ o tworzeniu aplikacji internetowych w Django. Kiedy powstawał ten artykuł, własnie wyszła beta 1.2. Wczoraj ukazała się stabilna wersja 1.3 frameworka a w niej sporo zmian. Pełen opis nowych funkcjonalności tu: http://docs.djangoproject.com/en/dev/releases/1.3/
Z najważniejszych zmian:
– widoki można tworzyć teraz jako klasy, odpowiednie klasy zastępują też generyczne widoki oparte o funkcje: http://docs.djangoproject.com/en/dev/topics/generic-views-migration/
– logger z poziomu frameworka:
import logging logger = logging.getLogger(__name__) .... logger.error('Coś poszło nie tak!')
– wygodniejsza obsługa plików statycznych (js, css, obrazki): http://docs.djangoproject.com/en/dev/howto/static-files/
– obsługa unittest2
– kontrolowanie zarządzania transakcją w widokach
– konfigurowalne delete-cascade
– ulepszone wbudowane tagi w szablonach
– klasa TemplateResponse
– ulepszona infrastruktura cache’owania
… i wiele innych. Zmiany wprowadzają też częściową niezgodność z poprzednimi wersjami Django.
Jak zainstalować najnowszą wersję Django?
1. Sprawdzamy gdzie w systemie mamy zainstalowane biblioteki dla Pythona
$ python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
w moim wypadku otrzymałem:
/usr/lib/python2.6/dist-packages
2. Ściągamy najnowsze Django
a) z SVN’a:
w katalogu gdzie chcemy mieć zawsze najświeższą wersję Django z gałęzi trunk wydajemy polecenie:
$ svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
tworzymy dowiązeznie w katalogu z bibliotekami, zamiast SITE-PACKAGES-DIR wpisujemy to co dostaliśmy w kroku 1):
$ ln -s `pwd`/django-trunk/django SITE-PACKAGES-DIR/django
tworzymy dowiązanie do skryptu administracyjnego:
$ ln -s `pwd`/django-trunk/django/bin/django-admin.py /usr/local/bin
b) z paczki z aktualnym wydaniem:
$ wget http://media.djangoproject.com/releases/1.3/Django-1.3.tar.gz $ tar xzvf Django-1.3.tar.gz $ cd Django-1.3 $ sudo python setup.py install
3. Tworzymy nowy projekt
$ django-admin.py startproject myproject $ cd myproject $ python manage.py runserver