Techniki Zaawansowane
3 godz. 43 min · Python · Full-stack i Programowanie
Grzegorz SzymborskiProgramistaJeżeli na samym początku nie przygotujemy dobrze projektu, to gdy wrócimy do niego po dłuższym czasie - czekają nas kłopoty. Jeżeli uda się nam go uruchomić, to rozeznanie się w nim będzie udręką. Prowadzący pokaże Ci jak wyglądają jego produkcyjne aplikacje, na co zwraca uwagę i co pomaga mu trzymać porządek.
Biblioteka pytest posiada wiele ciekawych funkcjonalności. Parametryzowanie testów, fixture i uproszczona składnia pozwalają nam skupić na testowaniu tego, co kluczowe, wydzielając mniej istotne fragmenty kodu. To wszystko sprawia, że w pewnym momencie łatwiej będzie Ci pisać testy, niż ręcznie sprawdzać poprawność działania apki.
Jeżeli aplikacja, którą stworzysz, osiągnie dużą popularność, może się okazać, że przytłoczona dużym ruchem zacznie spowalniać... lub całkowicie przestanie odpowiadać. Opiszemy różne techniki służące temu, by temu zaradzić - od metod select i prefetch related, aż po cache. Na deser przeprowadzimy na stronie test obciążeniowy za pomocą narzędzia locust.
Django i Postgres to świetne połączenie. Framework ten posiada wbudowaną obsługę wyszukiwania pełnotekstowego oferowanego przez tę bazę. Warto wiedzieć, kiedy jej użyć, a kiedy wystarczy zwykłe icontains.
ORM w Django ułatwia mnóstwo operacji. A czasem nie dość to, że ułatwia... to jeszcze przyspiesza! Chcemy zainspirować Cię czterema metodami: annotate, aggregate, bulkupdate i bulkcreate. Gdy pojawią się one w naszym kodzie, zaczniemy doceniać uroki frameworka Django.
Kurs jest stworzony dla osób, które znają już podstawy Django i wiedzą, jak pisać proste strony. Znają modele, widoki, oraz niestraszny im jest Python. Zalecana jest również podstawowa znajomość dowolnej relacyjnej bazy danych. W kursie przedstawiamy niekiedy narzędzia i praktyczne przykłady, jak można ich użyć, ale w celu zaimplementowania konkretnego rozwiązania w projekcie wymagana będzie umiejętność czytania dokumentacji.
Kiedy będziecie pisali kod wielokrotnie
zdarzy się wam sytuacja że część kodu będzie się powtarzać.
Będzie to na przykład
pole które będzie podobnie realizowane które będzie podobnie przetwarzane i dobrą
praktyką wtedy jest wydzielić ten fragment i używać go w wielu miejscach.
Z tego jednego
poprawnie napisanego fragmentu na przykładzie pola kolor pokaże wam jak w
dżungli Rest framework dodać wali daje dodać przetwarzanie i podjąć je
z wielu miejsc w te jedno stworzone przez nas Custom owe pola.
Widzimy że kolor w artykule jest zwykłym
filmem który ma 17 znaków i powiedzmy że chcielibyśmy żeby kolor był
przedstawiony w formie herosa z hasłem na początku z siedmioma znakami
długości przejdziemy do serialu od zera w którym wszystko się będzie działo w którym
przeprowadzimy całą rywalizację i cały processing.
I stworzymy klasę.
Kolor Field która będzie odziedziczyła po tym do czego nam najbliżej w naszym polu.
Naszym polu jest najbliżej do czar Phila
dlatego będziemy dziedziczyć po klasie Garfield z biblioteki Rest framework
pakietu serial Sisters i napiszemy w klasie czar Phil
metodę Runway Nation i metodę tu internauci raju Runway Dijon.
Posłuży nam do zweryfikowania czy na samym
początku mamy hasła i czy cały String ma 7 znaków.
Natomiast tu internat posłuży nam do
kasowania całego wyrazów za pomocą Control o na Maku.
Otwieram okienko metod do pisania i będzie to metoda fali Nation
domyślnie Pixar utworzy nam metodę walki dając wywołanie super metody
za importuje tylko energii z biblioteki Rest Framework.
I.
Przyjmiemy dane z super metody do pola data.
Od razu ją zwrócimy i tak jak mówiłem sprawdzimy na początku czy
chaos jest jako pierwsza litera w ringu i czy String ma długość 7 znaków.
Sprawdzałem pierwszą literę.
Jeżeli nie równa się has lub.
Całkowita długość wyrazu nie równa się 7 znaków.
Wtedy zwrócimy wyjątek z informacją że.
Wartość jest niepoprawne dlatego pola
wyjątek standardowo Rest framework nation error.
I owszem komunikat.
Napiszemy teraz prosty test który sprawdzi czy realizacja działa poprawnie.
Ale jeszcze wcześniej musimy to pole
dodać do naszego artykułu dodajemy to standardowo tak jak byśmy
dodawali zwyczajne pole czyli atrybut kolor przy piszemy do pola color field.
Możemy jeśli chcemy użyć tutaj parametrów z klasy czar Field Rest framework np.
Liquid itd.
Teraz przejdziemy do testów w.
Aplikacji artykul test.
Może to być tutaj sprawdzimy czy seria laser wróci.
Walid Fox w przypadku kiedy podamy mu niepoprawne wartości koloru.
Dobrym pomysłem jest sprawdzenie w teście
jednostkowym tylko tego jednego pola kolor filtra który daliśmy tej klasy i
zweryfikowanie czy realizacja tam działa poprawnie.
Dlatego że jeżeli będziemy chcieli kiedyś
przenieść tę klasę to będzie to zrobić nam dużo łatwiej.
Wraz z tymi testami niż przenosząc testy dla artykułów do naszej innej aplikacji.
Importuje my.
Nasze nowe pole.
Testujemy teraz metodę rozmawiali Dijon.
Sprawdzimy czy dla nie poprawnych danych zgłosi ona nam wyjątek wali Nation r.
Aby to zrobić skorzystam z kontekst
menedżera wbudowanego w test który nazywa się.
Reiss.
I tutaj sprawdzimy czy.
Metoda wyrzuci nam wyjątek wali Nation r r w momencie jeżeli mamy metodę
Run wali Nation i przekazujemy to na pewno niepoprawny kolor.
Taki.
Okazuje się że.
Test przeszedł zgodnie z oczekiwaniami.
Sprawdzimy teraz poprawny kolor i
testujemy czy funkcja przypadkiem dalej nie zgłasza nam jakiegoś błędu.
I okazuje się że jest OK.
Teraz pozostała jeszcze druga część zadania czyli z oper kasowania wszystkich
kolorów które zostaną przekazane przez użytkownika.
Przechodzimy do naszego pola.
Napiszemy metodę tu internet tam gdzie przyjmiemy dane.
Zwrócimy je po wykonaniu na nich uprzednio metody PR.
Sprawdzimy w teście czy metoda zadziała zgodnie z naszymi oczekiwaniami.
Przekazując.
Wartość która jest zlokalizowana.
I przyrównał ją do afery solnej wartości.
Udało się do czego przydają się nam często takie pola.
Dobrym przykładem wykorzystania kasta
nowego pola w Rest Framework jest przypadek kiedy chcemy przyjąć z zewnątrz
dane w formacie A4 i zamienić je po naszej stronie na plik.