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.
Dobrze jest w naszej wyszukiwarce obsłużyć problem sterówek.
Głupio żeby klient który popełni literówki zobaczył pustą stronę zamiast konkretnie
dobrze dopasowany produkt który prawdopodobnie miał na myśli.
Do tego celu użyjemy funkcji z Peresa
która nazywa się program seminariów i instaluje ją za pomocą imigracji.
Stworzymy sobie pustą migrację.
W aplikacji Article za pomocą flagi n.p.m. tworzyła się.
Pod nazwą 002.
Jako operację.
Wpisujemy po prostu Trigon Extended.
Z pakietu Django kontry po z gry z Operation Strike bramek przez.
Oddajemy zawiasy i uruchamiamy migracja.
W tym momencie możemy korzystać z
bardzo wygodnej funkcji która porównuje nam dwie frazy porównuje nam coś co jest w
bazie danych porównuje nam coś co my piszemy.
Działa to na takiej zasadzie.
że zamienia nam słowa.
Na.
Pewne części działa to tak że dzieci na początku nawet później a później na dwór.
Zgodnie z nazwą Tri gram są to maksymalnie trzy litery owe fragmenty.
Później jest RTS później RS a później s a w a dół i.
To samo
zrobi z frazę którą chcemy wyszukać i z wyrazami które są już w bazie danych.
Dzięki temu.
Mamy pewne fragmenty które możemy porównać
i wartość którą otrzymujemy podczas tego wyszukiwania jest współczynnik pasujący
tekstów do wszystkich pracujących tych fragmentów.
Zajrzymy ponownie do funkcji chcielibyśmy wyświetlać wyniki które są powyżej.
Dwóch dziesiątych wskaźnik jest od zera do jednego powiedzmy że chcielibyśmy żeby
pojawiały się wyniki które się w pasowały w dwóch dziesiątych.
Należy to zrobić w ten sposób że tworzymy obiekt klasy wygramy z miliard
który w pierwszym parametr przyjmuje pole w drugim przyjmuje coś.
Wejściowego w tym przypadku będzie to Gwardia.
Taką funkcję umieszczamy za pomocą a i tak w naszym secie.
I może żeby jeszcze nie filtrowanie pokaże wam jak to w ogóle działa.
Zajrzymy do klatki i tam piszemy sobie z nimi żarty.
Obok tytułu będziemy mieli fajny podgląd na to.
Które artykuły są podobne do tego co wpisujemy.
świeżymi.
Nie wpisać żadnego pola do tego nic tam nie porównał i szukamy
dostaliśmy dla mleka co nie jest zaskakujące zero dla zielonej herbaty 0.5
dla czarnej 04 i dla artykułu o liściach herbaty 1 6.
Dlatego możemy sobie w tym momencie ustalić jak.
Dużo wyników chcemy wyświetlać jak bardzo chcemy tolerować drobne pomyłki.
Ewentualnie jeżeli zależy nam na jak największej ilości wyszukiwań to możemy po
prostu po sortowania to od najlepiej dopasowanych do najmniej dopasowanych.
Bardzo fajnym pomysłem
jest też zebranie wszystkich słów które mamy w bazie danych i wyszukiwanie tylko.
Wśród tych pojedynczych słów już tłumaczę dlaczego.
Gdybyśmy już tłumaczę dlaczego kiedy mamy długi tytuł kiedy mamy jakieś
długie frazy to wyszukiwanie po ramach nie jest do końca precyzyjne kiedy mielibyśmy
tytuł składający się z 30 słów czyli chcielibyśmy wyszukać po jednym to wtedy
ten współczynnik byłby bardzo nisko po prostu przez to że pasowałby do małej
liczby elementów pomijając fakt że mógłby idealnie wpasować się w której ze słów.
Dobrym pomysłem jest np.
wyciągnięcie wszystkich słów osobno z naszych produktów z naszych tytułów
i wysłuchanie w takiej właśnie liście najbardziej odpowiednich słów.
Wtedy jesteśmy w stanie najbardziej
precyzyjnie określić które z tych słów prawdopodobnie miał na myśli użytkownik.