Django to chyba najbardziej popularny framework webowy dla języka python i tak się składa, że to właśnie w nim napisałem swojego bloga. Jest taki hermetyczny żarcik programistów, że jak programista zamierza pisać to pierwsze co robi to pisze swojego bloga 😉 W moim przypadku okazało się to akurat prawdą.
Django w wersji 2.0 wyszedł w grudniu 2017 roku więc stwierdziłem, że wreszcie przyszła pora na to by przejść z wersji 1.11 do najnowszej. Dlaczego? Głównie dlatego, że lubię aktualne oprogramowanie bo wiecie, oprócz nowych bugów dochodzą również łatki bezpieczeństwa. Wersja 2.0 nie jest rewolucyjna jak mogłaby sugerować numeracja. W kwestii funkcjonalności to moim zdaniem delikatny progres względem 1.11, ale jest jedna tak naprawdę istotna zmiana - porzucenie wsparcia dla pythona 2. Python 2 to staruszek i jego żywot już dawno powinien się zakończyć jednak z powodu licznych bibliotek opartych o tę wersję oraz z powodu bardzo dużej popularności fundacja stojąca za językiem bała się szybko zakończyć wsparcie. Tak czy inaczej dni pythona 2 dobiegają końca i w 2020 roku przestanie być oficjalnie wspierany. Na stronie co popularniejszych bibliotek jak requests już widnieją ostrzeżenia by rozważyć migrację jeśli dalej siedzisz na tym dziadku z artretyzmem.
Tak czy inaczej wracając do sedna - mój blog jest prosty ale korzystam z kilku zewnętrznych appek i bałem się, że to one mogą stanowić problem. Oto pokrótce sklecona lista:
Jak widzicie trochę tego jest, ale podbijając wersję django jak i wszystkich powyższych appek nie spotkałem się odziwo z żadnym błędem związanym z kompatybilnością. Hurra 🎉 Musiałem jednak wprowadzić kilka małych zmian w kodzie.
url(r'newsletter/', include(('newsletter.urls', 'newsletter'), namespace='newsletter'))url(r'newsletter/', include('newsletter.urls', namespace='newsletter'))Zrobienie migracji wraz z wdrożeniem zajęło mi około 30 minut, więc jestem bardzo zadowolony 😀 Jeśli ktoś uczy się programowania w pythonie i liznął trochę django to polecam przeanalizować i sforkować kod źródłowy mojego projektu. Projekt bardzo prosty do zrozumienia, przy okazji pokazuje jak wygląda nieźle napisana aplikacja w django (chociaż brakuje testów i logów)