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.
Tworzenia naszych projektów bardzo często przyjdzie nam tworzyć wyszukiwarkę.
łatwo jest do tego celu użyć Googla
wyszukać po konkretnie naszej stronie i za pomocą.
Dużo bardziej skomplikowanych algorytmów
niż jesteśmy sobie w stanie wyobrazić możemy wyszukać dane na naszej stronie
ale czasem istnieje taka potrzeba żeby dodać naszą własną wyszukiwarkę.
Ten rozdział poświęcimy wyszukiwarką.
Zacznijmy od czegoś prostego.
Zaczniemy od tych które są wbudowane w
każdą bazę danych i dojdziemy do furtek stwierdzić które obsługuje post.
Wyszukiwanie danych to problem z którym niemal na pewno przyjdzie nam zmierzyć się
jak zaczniemy wykonywać projekty komercyjne.
Jest to zadanie którego nie da się do
końca zrobić idealnie ale istnieje wiele podejść do tego problemu.
Oczywiście idealnie zrobił to Google ale raczej nie osiągniemy tego poziomu.
W pierwszej lekcji użyjemy najprostszej możliwej techniki do wyszukiwania danych.
Obsługuje ją każda baza danych która wspiera Django.
Do widoku z listą artykułów dodałem metodę filtrów żądzą która pobiera
z Queer UW Parametr q i docelowo po nim będziemy filtr.
Zacznijmy jeszcze jak wygląda ta lista.
Na razie nie mamy żadnych artykułów
ale na tę okazję specjalnie przygotowałem plik jej swą nazwę.
Przykładowy plik znajduje się w katalogu głównym w pliku Art są.
ładuje go za pomocą lobby data in all article.
Przepraszam Jackson widzimy że grało się cztery obiekty wierzymy.
Mamy tutaj artykuły na których mi zależy
dlatego żeby przetestować przestawiać wyszukiwania.
Co mam na myśli.
Mam na myśli że wpisując zielona herbata
jak i herbata zielona w obu przypadkach powinniśmy dostać się na artykuł.
Zacznijmy od najprostszej implementacji mianowicie metody content.
W metodzie filtr sprawdzimy czy dostaliśmy
queer żeby zabezpieczyć się przed zbędnym filtrowanie i zwrócimy tutaj.
A może pod zmienimy tak będzie
nieco lepiej bo w przyszłości kiedy będziemy chcieli poniżej modyfikować queer
to wtedy będzie to dostępne za pomocą metody filtr.
Na polu Digital zrobimy lub bo companies a.
Znaczy Case Insight czyli niezależnie od
tego czy wyszukuje wielkimi literami czy małymi literami jest to bez znaczenia.
I piszemy tutaj gwary.
Wrócimy otworzymy.
Piszemy.
Zielone dostałem zieloną herbatę w zielona herbata.
Również zostaniemy piszemy herbata zielona i nie dostaliśmy jeszcze
jako taką ciekawostkę podam co się tworzy w pytaniu jeżeli
używamy tańca i widzimy że jest to gwiazda nowy light.
Porównywanie fragmentów które są.
Gdzieś w tekście.
Piszemy sobie teraz takie małe usprawnienie żeby wyszukiwać.
Słówka niezależnie od ich kolejności.
Aby to zrobić musimy frazę którą pisze użytkownik podzielić na słowa.
Podzielimy ją widzieliśmy ją i mamy tutaj listę ze słowami
i teraz musimy stworzyć ikonę tenisa dla każdego z tych słów i
połączyć go orłem czyli wyszukać w bazie danych jeżeli tytuł zawiera herbata lub
tytuł zawiera zielona to żebyśmy go zwrócili.
I tu trzeba będzie się nieco na gimnastykę.
Musimy stworzyć.
Po obiektach pił.
Może jeszcze takie szybkie wyjaśnienie
jest klasą która pozwala nam tworzyć zapytania or lub End.
W bazie danych i czasem jest niesamowicie
przydatna jeśli pokażę wam na przykładzie na razie bez docelowego przykładu.
Jeżeli byśmy chcieli przez filtr.
Tytuł po tym co wiem czyli że albo tytuł zawiera herbatę albo zawiera Zieloną.
Najłatwiej byłoby tę część.
Włożyć jako parametr do obiektu Q
który byłby włożony do innego Q i dodać tutaj Pippa.
Kolejny obiekt.
W tym momencie zostanie skonstruowane gwary które będzie zawierało oraz
jeżeli zamiast popadamy to będzie stworzony endem.
Wracając już do naszego problemu
stworzyliśmy obiekt i teraz musimy przez wszystkie słowa
zapytania użytkownika kierować i dodać je do obiektu kół.
Jako pierwszy parametr podajemy obiekt w którym chcemy filtrowania których
właściwie chcemy dodać do tego naszego głównego filtra i będzie to kontent.
Po słówko czyli będzie monitorować jako
pierwsza będzie herbata i chcemy porównać Twitter czy zawiera herbatę.
Jako drugi parametr dodajemy
or która jak z reklamy jest stałą jest atrybutem który zawiera Stinga oraz.
W tym momencie mamy już skonstruowany obiekt który
powinien nam docelowo trafić tak jak chcemy.
Wystarczy go.
Włożyć w ten sposób do filtra.
I w tym momencie zerka co się dzieje.
Herbata powinna nam działać bardzo podobnie zielona herbata
powinna nam również działać bardzo podobnie jak przedtem.
Natomiast.
Herbata zielona działa już inaczej niż było.
Szybki rzut oka na zapytanie do bazy danych.
Mamy tutaj link herbata or Light zielona.
Stworzyliśmy w ten sposób bardzo prymitywne ale jednak w wielu przypadkach
wystarczający wyszukiwarkę która jest w miarę szybka która jest.
W miarę precyzyjna ale można to zrobić lepiej.
W następnych lekcjach
pokażę wam jak za pomocą furtek serca czyli funkcjonalności która jest wbudowana
w bazę danych GPS zrobić jeszcze lepszą wyszukiwarkę.