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.
Opowiem wam o bibliotece Django Environment która bardzo pomaga w
konfiguracji projektu na różnych środowiskach.
Zainstaluje ją.
Pomocą PIP Instal Environment.
Wchodzimy do naszych ustawień.
Na samej górze musimy importować
bibliotekę a później musimy wywołać ją w ten sposób i za pomocą metody red.
Wskazać ścieżkę do pliku ze zmiennymi środowiskowym i.
Jest to katalog główny.
Jest to katalog AB który jest bazą DRM.
Powiem wam jeszcze w jaki sposób rejestr jest tworzony.
Korzystam z biblioteki Filip z klasy Piaf
która wskazuje jak zetknięcie tutaj tutaj wskazujemy na tym w którym jesteśmy w tym
miejscu i rent wchodzi tu tu i tu jesteśmy w folderze AP.
Dzięki temu zaprezentuje Wam na dole w jaki sposób
można użyć na przykładzie folderu z szablą nami.
Działa to trochę tak jakbyśmy naturalnie
tworzyli strukturę katalogów czyli katalog główny bazy Dir i katalog niżej tablicy.
Ale wróćmy do Mirona zajrzymy do tego pliku.
To jest jakiś bank i niestety nie można za pomocą paska wskazać plików.
Być może jest to kwestia wersji być może
to zostanie naprawione ale musiałem to zrobić w ten sposób.
Przejdźmy do pliku.
W formacie klucz wartość oddzielone jest znakiem równości.
Podajemy konfigurację z jaką ma działać nasz projekt
w jaki sposób teraz to wywołać Owen Wilson oferuje szereg metod
część metod po prostu wskazuje na daną zmienną środowiskową.
W tym przypadku n kredki po prostu pobierze ją tak jak jest.
Z kolei jeżeli użyjemy metody ból to wtedy
zostanie ta zmienna przerzutów Dana na typ buli.
Kolejna rzecz jeżeli nie podamy Volta to.
W przypadku kiedy we don't end nie
znajdzie się ta zmienna to zostanie zgłoszony wyjątek dlatego jest to dość
dobry sposób jeżeli chcemy wymusić na użytkowniku który tworzą
nową instancje projektu wymusić skonfigurować kilku plików.
Jest również bardzo ciekawa metoda list
która pozwala nam na jak sama nazwa wskazuje ustawienie listy co w przypadku
normalnych zmiennych środowiskowych wcale nie jest takie proste ponieważ trzeba je
podzielić trzeba jest pasować a tu mamy to w zestawie.
Format listy jest taki że podajemy po przecinku różne wartości.
Gdybyśmy chcieli tutaj dać na adres Local host to wtedy byłaby lista
złożona z dwóch stringi ze 127 i wokal chusta.
Bardzo dobrym pomysłem.
Jeżeli już mamy plik
jest zrobienie pliku z sampli ponieważ pod żadnym pozorem nie powinniśmy
trzymać pliku ze zmiennymi środowiskowym na repozytorium.
Każdy kto wejdzie na nasz projekt będzie
chciał lądować powinien wygenerować sobie taki plik samodzielnie.
I do tego celu.
Dobrym pomysłem jest stworzenie szablonu takie jak mam go tutaj przygotowanego.
Jest to szablon który możemy skopiować
który może nawet bez zmian nam zadziała i który wskazuje jakiej mamy pola.
Można wskazać które pola są wymagane za pomocą komentarza dzięki temu np.
jeżeli komentujemy out chaos to wiadomo że nie musimy tego wypełniać.
Natomiast skrytki jest wymagane.
Pewnie zauważyliście że baza danych jest podana w dość dziwny sposób pokaże wam.
O co chodzi przejdźmy do bazy danych i zobaczcie tutaj.
Nie mamy pobranej nazwy tylko mamy własną metodę DB.
Metoda DB domyślnie pobiera Database URL
który jest w takim specyficznym formacie i jak rozłożyć ten format URL na czynniki
pierwsze to zobaczycie że tutaj jest typ bazy danych.
Tu jest login i hasło.
Host nam port i baza danych.
Takie same URL możemy w gangu stworzyć dla.
Maila i dla Kesha.
Z kim.
Co jeszcze jest w ustawieniach nietypowego.
Zazwyczaj jak tworzę projekt to rozdziela zainstalowane aplikacje na pod listy.
W tym przypadku jest to lista z
wbudowanymi bankowymi aplikacjami i lista z moimi własnymi aplikacjami.
Jeżeli byśmy dodawali plagi inne jakieś
biblioteki dodatkowe czy Giba który bardziej jakieś inne to też możemy
stworzyć trzecią listę możemy je trzymać w trzeciej liście.
Poprawia to nieco czytelność kodu.
Pamiętajcie że jeżeli chcecie zastosować
taką strukturę katalogów jaką mam u siebie musicie zmodyfikować atrybut root URL.
Podobnie jest z USG i Application.
Tu jest dość nietypowy fragment ponieważ
podając statek drut używamy zmiennej środowiskowej statek
skrót z wskazaniem na domyślną ścieżkę która jest u góry.
Zazwyczaj stosuje to rozwiązanie ponieważ
jeżeli serwuje stronę przez doktora to tam dużo wygodniej mi jest podać wolę w innym
miejscu niż konto lokalnie podczas Development.
Stąd też zmienna środowiskowa do tego celu.
Analogicznie w przypadku media.
I jak się przez życie
cóż również konfigurację za pomocą URL a kiedy domyślny jest Cash.
Pamiętajcie że projekt który
inne osoby po nas przejmą ktoś będzie mógł lądować i swobodnie nim zarządzać musi
mieć ustawienia na repozytorium i musi mieć dobrze opisane zmienne środowiskowe.