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.
To model artykułu z dwiema metodami
metodę publiczną i metodę an PAP iż napiszemy teraz testy w teście i pokażę
Wam w jaki sposób można wykorzystać gierki.
W katalogu test w aplikacji artykul stworzymy plik test.
Model S.
W tym momencie napiszemy test który.
Sprawdzi czy po opublikowaniu artykuł ma flagę IS bliższy.
Na trumną i przeciwnie od publikowania czy ta flaga wynosi Falls.
Chcemy stworzyć artykuł.
Swoim portfelem.
I teraz żeby prześladować
obiekty z bazy danych i sprawdzić czy flaga się zmieniła.
Problem Fresh from DB.
Później przyznajemy flagę i.
Analogicznym test wykonujemy dla.
Metody and Publishing.
Tutaj flaga powinna być.
Fox spróbujmy uruchomić te testy.
I okazuje się żenie przeszły z nimi.
Jaka jest tego przyczyna.
I okazuje się że.
Domyślnie jest w testach nie ma dostępu do
bazy danych i udostępnia się go właśnie za pomocą fix.
Można to zrobić najłatwiej wpisując.
Argument ten słówko DB.
Spróbujmy jeszcze raz uruchomić testy z danymi DB.
Okazuje się że przeszła teraz.
Czym jest właściwie Turka.
Jak zajrzymy w szczegóły.
Okazuje się że jest to funkcja która jest udekorowane metodą Fix z biblioteki.
To sprawia że test automatycznie potrafi.
Jeżeli dodamy parametr
taką Fix automatycznie potrafi ją za importować i włączyć ją do naszego testu.
Można to zrobić nieco wygodniej zamiast
dopisywać DB w każdym teście który będzie wykorzystywał bazę danych.
Możemy stworzyć kolejną Fix córkę.
Nazywamy auto jest importerem importem.
Z pakietu PIT jest.
Auto DB będzie korzystało z DB i samo w sobie nie będzie nic robiło ale
to co jest istotne to dodanie parametru auto juz nad trumną.
W tym momencie
każdy test który zostanie uruchomiony w Skopje Szczerski ci w tym przypadku ten
plik będzie miał dostęp do bazy danych ruchomy to jeszcze raz.
Nic się nie zmieniło jeśli jest dobrze.
Taką figurkę która przyda nam się nie tylko w tekstach z artykułami.
Warto zostać globalnie.
Aby to zrobić.
Należy stworzyć plik pay.
W katalogu głównym.
Skopiować tam.
Córkę.
W tym momencie możemy się z artykułów usunąć musimy też import.
Nie jest nam potrzebne i ponownie sprawdzimy czy wszystko działa.
Około.
Tylko Fix córki przydała się jeszcze w jednym przypadku.
Wyobraźmy sobie co by było gdyby każdy artykuł musiał być
stworzony z autorem musiałbyś być tworzone z flagami.
Musiałby być stworzony z datą powiedzmy jakąś albo z innymi rzeczami.
Wtedy w każdym teście musielibyśmy na bieżąco aktualizować wszystkie
wszystkie pola które się zmieniły i które są wymagane tylko po to żeby przetestować
jedno konkretne pole które nie jest powiązane z tymi wymaganym polami.
I takie coś możemy zrealizować za pomocą historii.
Tworzymy ją w ten sposób nazwijmy ją po prostu artykul.
Zwrócimy sobie artykuł.
Teraz na taki napisany artykuł Fix serce możemy
użyć w ten sposób że coś nam nie będzie potrzebne.
Dlatego w tym miejscu trzymamy.
Powiedzmy historię która tworzy nam
instancje modelu a w innych je wykorzystujemy.
Jeżeli dojdzie autor jeżeli dojdą nam targi to automatycznie będą uzupełnione.
We wszystkich artykułach których będziemy używać.
Ciekawą rzeczą którą mogliście zaobserwować w DB.
Jest koła.
Skoro pozwala nam zdefiniować jak często
Fix córka ma nam tworzyć domyślną łupem dla czterech jest właśnie funkcja czyli
po uruchomieniu każdego testu będziemy od nowa ją tworzyć.
Możemy to zmienić i wpisać na przykład mogiłę.
To sprawi że dla całego modułu.
Będzie jedna Czarka będzie użyta jedna instancja.
Kolejną przydatną funkcjonalnością jest słówko kluczowe i Hilde.
Możemy je wykorzystać jeżeli byśmy chcieli pisać testy wielu języków i za pomocą
Fix córki ustawiać konkretny język byśmy chcieli np.
testować.
Mamy wiele na aplikacje chcemy testować ten test po polsku ten test po angielsku.
Stawiamy.
Język angielski.
Za pomocą kontekstu menedżera liter.
Z biblioteki translacji MON stawiamy język angielski.
I wewnątrz tego kontekst menedżera.
Jeśli piszemy słówko kluczowe i
teraz wszystkie testy które będą korzystały z Fisher ki set and Language
w nosie uruchamiamy w kontekście ze zmienionym językiem.