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.
W poprzedniej lekcji zajmowaliśmy się model serial z grami
w tej zaprezentuje Wam jak zwali dotować modele we własny sposób.
Jeżeli będziemy mieli jakieś specyficzne wymagania biznesowe okaże się że tytuł
musi być krótszy dłuższy nie może zawierać określonych słów.
Jeżeli nie możemy rejestrować określonego typu modeli w danym czasie to wszystko
możemy zrobić za pomocą aplikacji w serialach i wzorach.
Przygotowałem widok.
Który korzysta z generycznych klasy list
Create PW która wystawia listę i umożliwia tworzenie
obiektów do jej działania wystarczy podanie seria lasera i tu.
Seria laser podejrzanymi jest bardzo
podobny do tego co było na poprzedniej lekcji.
Tylko tutaj pole autor i tak jest domyślne.
Zacznijmy jak wygląda ta strona wygląda w ten sposób.
Mamy tutaj wygenerowany przez gang framework widok
Rangers Forever zapewnia nam również formularz który już jest przygotowany pod
ten konkretny realizator i jak widzimy mamy tutaj wszystkie tagi i
polecam bardzo uważać na tę właśnie przypadłość.
Rest framework ponieważ jeżeli się zapomnimy jeżeli nie usunięty z produkcji
tego formularza a robimy formularz zamówienia to może się okazać że
wyciek nie nam pole kodów rabatowe i to będą dostępne wszystkie kody rabatowe.
Tego byśmy raczej raczej nie chcieli.
Spróbujmy stworzyć pusty obiekt.
Okazuje się że wymagania są takie że musi być to i muszą być tagi.
Spróbujmy sprawić żeby tagi nie były
wymagane ponieważ pole manewru ma domyślnie nie wymaga obiektów.
Przejdźmy do seriali zera.
I w klasie meta możemy dodać extra Works.
W ten sposób do pól które już istnieją możemy w Ustrzykach bądź jakieś dodatkowe
parametry nie musimy deklarować w ten sposób.
Gdybyśmy deklarowali je w ten sposób dajmy na to chcielibyśmy zmienić żeby
autor był wymagany bądź nie były wymagane musielibyśmy pisać
poprawną klasę Prime recesji liter na poprawnym Gwardii secie i byłoby to
niepotrzebne powielanie tego co daje nam Framework.
Wracając do targów chcielibyśmy sprawić żeby były opcjonalne.
Do tego opisujemy parametry Clear Falls i wpisujemy parametr End.
W ten sposób nie będziemy musieli
przekazywać pola Tax do seriali zera i nawet jeżeli podamy pustą
listę to i tak zostanie ona uznana za poprawną.
Okazuje się że.
Przestaliśmy dostawać komunikat o wymaganych targach.
W ten sposób podajemy tylko tytuł i tworzy się nam obiekt.
Co gdybyśmy natomiast chcieli żeby autor
wymagane działam analogicznie tworzymy klucz autor.
W tym przypadku.
Stawiamy na trójkę i musimy również zmienić flagę Hull na Folc ponieważ
będziemy wymagać żeby autor pojawił się w słowniku który będziemy otrzymywać i
musimy sprawdzić czy przypadkiem nie jest on.
Po utworzeniu faktycznie autor nie może być Lema.
Jest on wymagane tylko jeżeli wskaże na
autora to dopiero w tym momencie stworzy się artykuł który ma przypisanego autora.
Teraz zajmiemy się metodami które realizują artykuł.
Wyobraźmy sobie że dostaliśmy
takie zadanie żeby artykuły nie mogły być ze słowami wulgarnymi.
Tworzymy metodę walki datę.
Django framework automatycznie wykrywa
metody które dotyczą określonych pól i mają przedrostek wali date.
W ten sposób dostajemy Walią tytuł który wprowadzi
użytkownik i możemy sprawdzić czy jest on poprawny.
Stworzymy sobie listę słów zakazanych.
Będzie to obóz i gałka.
Sprawdzimy teraz czy w tytule te słowa się znajdują.
Możemy zrobić.
Lower żeby sprawdzanie było Case Thief
i podzielimy to co otrzymaliśmy w tytule na słowa.
Teraz więc po niedozwolonych słowach będziemy sprawdzać po kolei czy.
Znajdują się one w słowach które są w tytule.
Jeżeli się tam znajdą musimy wtedy zgłosić wyjątek Walii date Nation error.
Pochodzi on z klasy res framework na ROR i jako parametry możemy podać.
Treść błędu.
Jeżeli realizujemy pole to wymogiem jest żebyśmy zwrócili je na sam koniec.
Sprawdźmy.
Czy to coś dało.
Było.
Spróbujemy zapisać i dostajemy.
Błąd że tytuł nie może zawierać brzydkich słów.
Spróbujmy go oszukać i piszemy łobuzów.
W tym momencie.
Krytyków się stworzy ponieważ porównujemy całe słowa.
Istnieje również realizowanie.
Kilku pól jednocześnie i robimy to za pomocą metody walki.
Waldek przyjmuje atrybuty.
Bardzo dobrym pomysłem jest wykonanie.
Bardzo dobrym pomysłem jest wywołanie metod rodziców za pomocą super.
I one zwróconą atrybuty
sprawdzimy czy przypadkiem tytuł nie jest równy nazwie autora.
Bierzemy tytuł.
Sprawdzimy.
Nazwa autora
dostajemy w Walii datę już gotowy obiekt gotowa instancja autora a nie Prima reki.
W ten sposób będziemy w przypadku kiedy będzie się nam to zwrócimy.
Błąd.
I w przypadku metody walki dajcie jeżeli
zwrócimy wali Nation error to w przypadku kiedy
podamy tutaj tylko treść błędu to zostanie ona zwrócona w polu non Field.
Jeżeli chcemy natomiast wskazać w którym polu ma się pojawić dajmy na to
chcemy żeby pole bitwy było podświetlane to wpisujemy tutaj.
Sprawdzimy czy.
To działa.
Jana Kowalskiego go będzie nieco łatwiej go wpisać.
Nie pisałem zwrotki atrybutów wali poprawiamy to sprawdzimy ponownie.
Mamy tutaj coś takiego i zmienimy.
Zadziałało to pozwala na naprawdę wiele
realizacji pozwala nam sprawdzać czy artykuł dodaje dany autor jakie ma
uprawnienia czy może dodać w takim konkretnym uprawnieniem artykułu czy może
opublikować artykuł i jest to bardzo elastyczne narzędzie.