Po świąteczno-noworocznej przerwie wróciliśmy do naszego obozu przetrwania. ;)
Pierwszy dzień, będący jednocześnie drugim dniem 2018, był niestety dramatyczny. 70% wiedzy wyparowało od tak. Trudy Sylwestrowe i pierwszy dzień po nowym roku w pracy, też nie dawały wielkiego pola do popisu. Ostatecznie poszedł commit "powtórka z widoków" (z niedopatrzenia z nazwą po Polsku), gdzie jeszcze raz wytłumaczyłem co jest widokiem Django, a co szablonem i jak łączymy url-e aplikacji z widokami urls.py. Na podstawie Built-in template tags and filters zrobiliśmy mały wstęp do filtrów i rozszerzyślimy listę znanych tagów.
Jak przewidywałem, drugi dzień już był o niebo lepszy. Dalej utrwalaliśmy wiedzę na pograniczu widok/szablon - dodaliśmy 'wincyj' widoków i szablonów. Utworzyliśmy podstronę liczniki i widok counters(), do szablonu podaliśmy nazwy wydarzeń i ich daty. W zamierzenia na tej podstronie będziemy wyświetlać wydarzenia i bieżące liczniki, czyli ilość dni do/od tych wydarzeń. Jak zawsze po każdym dniu moja rektrutka zapisał wszystko do repozytorium git.
Dzień trzeci. Do tej pory nasze szablony po prostu wyświetlały dane. Trzeba było się się więdz dobrać do {% extends %}. Utworzyliśmy więc szablon bazowy base.html. Weszliśmy na stronę szablonów Bootstrap i pożyczyliśmy sobie źródło strony przykładu, kopując go do naszego szablonu bazowego. Zmieniłem na szybko ścieżkę do głównego pliku css i już mieliśmy, na szybko, nasz szablon główny. Teraz mogłem zacząć zagłębiać się w tajniki blocków {% block %}{% endblock %}. Dodaliśmy więc kilka bloków ({% block content %} - treść podstron, {% block title %} - dla nazwy/tutułu strony/podstrony). Rekrutka dość szybko ogarnęła, że szablon bazowy definiuje nasz szkielet html, z którego potem korzystam w naszych innych szablonach (na podstronach) niejako zastępując bloki z szalonu bazowego, przez powtórzenie ich w innych szablonach, oczywiście po ich rozszerzeniu przez nasz szablon bazowy - {% extends 'base.html' %}. Znowu nie udało się nam liznąć liczników, ale przy okazji mini pokaz stylów CSS stał się faktem i od razu pokazałem najgorszą praktykę, czyli użycie !important do wymuszenia działa stylu, który na szybko chciałem nadpisać.
Dzień czwarty - typy danych. Dzień czwarty, jako, że była to sobota, a piątek stał się przymusowo wolny, został "zakontraktowany" na 3 godziny nauki. Udało się wyrobić 2 godziny. Wróciliśmy do naszych liczników. Mieliśmy okazję poznać jedno z najważniejszych źródeł wiedzy współczesnego programisty, czyli portal StackOverflow. Znaleźliśmy tam odpowiedź na to jak zastąpić naszą data "2018-03-18" na pythonowy obiekt daty. Udało jednak nam się jedynie zaimportować from datetime import datetime. Resztę czasu poświęciliśmy na usystematyzowanie (i powiększenie) wiedzy na temat typów danych, do (dict, list, str) dołączyły (float, int, tuple). Otworzyślmy więc konsolę Pythona. Przy okazji nauczyłem się ciekawego porównania. Ponieważ ciągle skaczemy z konsoli (gdzie uruchamiamy nasz server developerski python manage.py runserver) do Komodo Edit (gdzie edytujemy nasz kod views.py), w odpowiedzi na to, po co to wszystko robimy w dwóch różnych programach porównałem konsolę (unixową i pythonowską) do kalkulatora bo kojarzy się wyłącznie z działaniami matematycznymi (zamykasz i wszystko znika), a edytor kodu do Excela bo kojarzy się z zapisywaniem (zapisujesz i wszystko zostaje).
Dzień piąty - html i w końcu nasze liczniki. Oczywiście za zawsze zaczęliśmy od liczników, nie mniej jednak, dość szybko przeszliśmy do powtórek szablonowych bloków i tagów, HTML, CSS-a (tylko trochę) i zabawy jedną z istniejących stron narzędziach deweloperkich przeglądarki Chrome. Usystematyzowaliśmy, że w zasadzie wszystko co jest pomiędzy {{ }} i {% %} to tak na prawdę szablony Django, a reszta to html (co jest może być mylące bo nasze szalony np. index.html, mają roszczenie *.html. Przypomnienie, utrwalenie i skok w nowe tagi/znaczniki HTML zrobiliśmy za pomocą Learnxinminutes(html), gdzie na szybko można było zobaczyć/przeczytać z czym się je HTML. Można te polecić całą stronę Learnxinminutes (z różnymi językami programowania) do szybkiej powtórki, albo jak sama nazwa wskazuje, do szybkiej nauki podstaw danego jezyka. Niestety dopiero po zajęciach udało mi się znaleźć to czego nie udało mi się w 20 sekund na zajęciach - Codepen, czyli narzędzia, które umożliwi rekrutce zabawę na HTML-u (CSS i JavaScript traktujemy narazie po macoszemu).
Podsumowanie Pierwszy dzień drugiego tygodnia nauki (po dłużejszej przerwie), zaczał się kubłem zimnej wody, ale potem było już tylko lepiej. Przeskakiwanie między konsolą, edytorem, przeglądarką, a także poszczególnymi plikami stało się dla rekrutki łatwiejsze. W końcu ustaliliśmy co jest jezykiem szablonów Django, a co HTML-em w naszych plikach szablonów. Usystematyzowaliśmy też troszeczkę typy danych na jakich pracujemy. Piękne porównanie konsola-kalkulator i edytor-Excel zrobiło robotę. W końcu wyświetliliśmy nasze liczniki :). Dowiedziałem się, że uczenie się wszystkiego naraz, może ozaczać częstsze zapominanie, a co za tym idzie częstsze powtórki tego samego materiału.