od Podstaw
4 godz. 14 min · Python · Full-stack i Programowanie
Rafał Stępień.NET, JS, Java, PythonZaczniemy spokojnie, od konfiguracji Pythona oraz środowiska programistycznego. Nie tracąc czasu uzbroję Cię w zestaw podstawowych instrukcji, za pomocą których stworzymy pierwsze praktyczne programy komputerowe. Zobaczysz na czym polega logika tworzenia aplikacji, jak poprawnie wykorzystywać typy zmiennych udostępnione przez twórców Pythona oraz jak poradzić sobie z obsługą błędów. Na końcu tej sekcji dowiesz się w jaki sposób dbać o wygląd naszego kodu oraz zaoszczędzić czas stosując funkcję.
Żeby zrozumieć i wykorzystywać pracę innych programistów pragnę pokazać Ci czym są moduły i w jaki sposób możesz je tworzyć w Twoim programie. To częsta praktyka pozwalająca na zachowanie przejrzystości kodu wraz z możliwością jego powtórnego wykorzystania w innych częściach naszej aplikacji. Zaznajomimy się z narzędziem PIP, dzięki któremu z łatwością zainstalujesz jeden z ponad 200 000 projektów (bibliotek). Korzystając z pracy wykonanej dzięki tysiącom innych programistów zaoszczędzisz czas oraz zminimalizujesz ilość popełnianych błędów. Na koniec sekcji dowiesz się czym jest virtualenv i dlaczego warto korzystać z niego w każdym projekcie.
W tej sekcji wejdziemy do świata programowania obiektowego - najczęściej wykorzystywanego sposobu w jaki formuje się programy komputerowe w dzisiejszym świecie. Dowiesz się czym jest klasa oraz jak utworzyć ją w Pythonie. Zobaczysz że programiści starają się odzwierciedlić otaczający nasz świat w postać kodu na wszystkie możliwe sposoby. Zapoznam Cię z głównymi nurtami w programowaniu obiektowym, aby zrozumieć w jaki sposób napisać dobrej jakości kod. W każdej części w praktyce wykorzystamy wiedzę teoretyczną zamieniając ją na postać kodu Python-a. Na koniec pokaże Ci jak można obsługiwać niestandardowe zachowania programu w taki sposób, aby nie przestraszyć użytkownika naszej aplikacji :)
Jeśli masz dosyć tworzenia aplikacji konsolowych...wreszcie możesz odetchnąć. Wkraczamy w świat internetu! Twoim celem jest napisanie kolejnego Facebook, utworzenie własnej strony internetowej lub serwera do gier? Czas wykorzystać wiedzę zgromadzoną podczas tego kursu. Pokaże Ci w jaki sposób zainstalować oraz skonfigurować mikroframework Flask do tworzenia aplikacji internetowych. Krok po kroku pomogę Ci w utworzeniu pierwszej aplikacji internetowej wraz z pokazaniem narzędzi takich jak Jinja, sesji oraz techniki Blueprint. Na koniec sekcji pokażę Ci w jaki sposób wgrać swoją aplikację na zewnętrzny serwer i pokazać się światu!
Podczas mojej nauki, pracy oraz pomocy innymi natknąłem się na wiele problemów, które blokowały początkujących adeptów programowania przed dalszą pracą. Być może utkniesz na jakimś błędzie, usuniesz niepoprawną część kodu lub nie będziesz wiedzieć co dzieje się z Twoim programem. Miałem wiele takich chwil, dlatego specjalnie na taką okazję utworzyłem dla Ciebie skrzynkę z narzędziami. Znajdziesz tam sposoby-wytrychy na poradzenie sobie w sytuacjach kryzysowych. Dowiesz się między innymi jak krok po kroku zobaczyć w jaki sposób komputer uruchamia Twój kod, czym mogą być spowodowane niespodziewane błędy oraz w jaki sposób poprawić jakość Twojej aplikacji.
Utworzyłem ten kurs dla osób, które są na początku swojej drogi z programowaniem oraz językiem Python. Jeśli posiadasz już doświadczenie w innych językach programowania z pewnością dużo łatwiej będzie Ci przyswoić wiedzę zawartą w tym kursie, niemniej zakładam, że nie masz pojęcia o programowaniu. W kursie stawiam na praktykę i chcę Ci pokazać jak szybko wykorzystać nabytą wiedzę, dlatego też po bardziej zaawansowaną część teoretyczną odsyłam do blogów, artykułów online oraz książek ze środowiska Pythona-.
Witaj w kolejnej lekcji wcześniej udało nam się utworzyć sesję dzięki
której będziemy przechowywać indywidualne koszyki użytkowników teraz
przyszedł czas na dodanie nowych endpointów aby przekonwertować
naszą aplikację konsolową na postać webową przygotowałem
dla ciebie wcześniej kilka z nich w
przypadku check będziemy pobierali
informację za pomocą metody
post i
następnie używali już gotowego obiektu bill do tego żeby
sprawdzić jaki rabat należy się użytkownikowi następnie
metoda save
służąca nam do zapisywania plików
i tutaj możemy spokojnie użyć get gdzie
będziemy przekazywać nazwy pliku który ma się pojawić w naszym folderze
pamiętajmy
o tym że tutaj nasz save
operuje znowu na zmiennych które będziemy posiadać w sesji być
może zauważyłeś już że ta część kodu oraz
ta są praktycznie takie same więc dobrą praktyką jest że jeżeli mamy
jakieś wspólne części kodu które powtarzają się w kilku
częściach wyrzucić je jednej spójnej
metody zróbmy to właśnie teraz utwórzmy
pomocniczą funkcję get bill
i zamiast cały
czas odnosić się do sesji wykorzystajmy naszą nowo utworzoną metodę
okej powoli możesz zauważyć
że nasz plik main znacząco
się rozwija i często
złą praktyką jest wrzucanie wszystkich funkcji wszystkich
route'ów do głównego pliku main niestety
sam widziałem pliki które zawierały setki jak nie tysiące linii kodu a
my powinniśmy dbać o to aby ten plik był najmniejszy jak
tylko się da i tutaj z pomocą przychodzi technika nazywana
przez flaska jako blueprint dzięki tej technice
jesteśmy w stanie zaplanować rozkład naszej aplikacji i
przenieść route'y związane w naszym przypadku z jakąś logiką
do całkowicie oddzielnych modułów zaraz
pokażę ci w jaki sposób możemy to zrobić otwórzmy
nowy folder i
plik o nazwie w
tym pliku będziemy trzymać wszystkie route'y związane z przetwarzaniem naszej
logiki takie add meal check i tak dalej
musimy zaimportować naszego flaska
oraz dodatkowy moduł który nazywamy blueprint następnie
tworzymy zmienną o
nazwie logic routes i obiekt blueprint
do którego przekazujemy następujące parametry w
tym momencie jesteśmy gotowi do tego aby przenieść
nasze route'y z pliku main bezpośrednio do naszego piku logic dzięki czemu
będziemy tworzyli taką zwartą strukturę i w momencie kiedy ktoś przyjdzie naszego kodu zobaczy
folder routes będzie od razu wiedział jak może szybko się odnaleźć i jak
znaleźć interesującą go cześć kodu okej okej
po przeniesieniu naszych route'ów od
razu pojawia się problem nie posiadania obiektu app spokojnie
w tym momencie nie będziemy bezpośrednio operować na tym obiekcie ale
na nowo utworzonej i zmiennej logic routes wystarczy zamienić w naszej
adnotacji nazwy at logic toutes i wszystko powinno być
okej co
jeszcze widzimy python nie widzi obiektu
bill dlatego też należy po prostu go zaimportować tak
jak to zrobiliśmy w main okej
nasze route'y są spójne zobaczmy teraz czy działają
poprawnie i są
przetwarzane przez naszą aplikację
flask zobaczmy
mimo że uruchomiliśmy naszego route'a sum który znajduje się w logic
niestety nie byliśmy w stanie znaleźć nowo
utworzonego route'a musimy
powiedzieć w pliku main gdzie można szukać gdzie można
szukać modułów związanych z route'ami dlatego
też w momencie kiedy mamy obiekt app należy użyć app register
blueprint i wskazać nazwę
modułu który będzie odpowiedzialny za
posiadanie route'ów związanych z logiką pamiętajmy
o tym aby zaimportować nasze route'y tę i
zobaczmy co teraz się staje świetnie udało
nam się przenieść nasze route'y do
całkowicie odrębnego pliku to samo zrobimy z route'ami które są związane z
formularzami dlatego że jest to trochę inna
część aplikacji inna częśc logiki i według mnie powinna zostać zawarta
w innej sekcji w całkowicie innym module
tak
samo jak poprzednio przekopiujmy nasz moduł
i możemy bazować bazować już
na pliku którye przed chwilą stworzyliśmy aby przyspieszyć troszkę
pisanie kodu to czego nam tutaj brakuje to
jeszcze zaimportowanie modułu render template zamiast
logic routes użyjemy tutaj nazwy form routes
który jednoznacznie określ że będziemy mieć do czynienia z route'ami
związanymi z wyświetlaniem formularzy okej
ostatnią rzeczą którą należy zrobić to prawidłowe
zaimportowanie naszych blueprintów
i zweryfikowanie czy wszystko działa poprawnie możemy też w
w pliku main poczyścić troszkę naszego kodu ponieważ już nie potrzebujemy tak
dużej ilości modułów dzięki czemu nasz plik skraca
się diametralnie i zachowujemy porządek okej uruchommy
nasz serwer warto pamiętać o tym że czasami nasz
serwer ulegnie wyłączeniu dlatego tutaj zawsze trzymajmy
pieczę nad tym że wszystko jest okej i działa poprawnie
zobaczymy czy możemy wejść na route add meal form
okej udało nam się
utworzyć ten route jednak wystąpił następujący błąd
chciałbym rozwiązać go razem z tobą po jego przeanalizowaniu
możemy sobie przypomnieć gdzie używamy endpoint'a add meal
w naszym template'cie użyliśmy
go tu w tym miejscu i w tym momencie warto by było dodać
nazwę modułu w którym będzie istniał przeniesiony
route python nam tu bardzo ładnie podpowiada co powinniśmy
zrobić jednak musimy się po prostu troszkę nauczyć go czytać
i analizować jego sugestie okej udało
się i mamy do dyspozycji rozdzielone
route'y na odpowiednie moduły form i logic oraz zachowany bardzo
przejrzysty plik main jeszcze zawierający aplikację
konsolową ale w następnych lekcjach pozbędziemy się go