Python. Instrukcje dla programisty - ebook
Python. Instrukcje dla programisty - ebook
Python ma wszechstronne zastosowania: nadaje się do tworzenia gier, aplikacji sieciowych, do wdrażania indywidualnych rozwiązań biznesowych, do różnych celów naukowych czy do rozmaitych innych praktycznych rozwiązań. Jest językiem umożliwiającym pisanie przejrzystego, zwięzłego kodu, który przy tym jest łatwy w konserwacji i pozwala na sprawne rozwijanie oprogramowania. Jeśli chcesz zacząć szybko pisać funkcjonujący, efektywny kod i tworzyć działające aplikacje, to Python jest świetnym wyborem.
Niniejsza książka jest zwięzłym, praktycznym podręcznikiem programowania w Pythonie, dzięki któremu gruntownie opanujesz podstawy języka i nabierzesz dobrych nawyków w programowaniu. Szybko będziesz mógł skoncentrować się na praktycznej stronie realizacji projektów, a nowo poznane koncepcje wypróbujesz przez rozwiązywanie konkretnych problemów. W taki sposób przygotujesz się do nauki zaawansowanych technik Pythona.
Najważniejsze zagadnienia omówione w książce:
- podstawowe koncepcje programowania
- praktyczne sposoby obsługi błędów i testowania kodu
- biblioteki i narzędzia Pythona, takie jak matplotlib, NumPy i Pygal
- praca z danymi i generowanie interaktywnych wizualizacji
- tworzenie praktycznych aplikacji od podstaw i ich wdrażanie na serwerach WWW
- możliwe problemy i sposoby ich rozwiązywania
Przekonaj się, jak szybko zaczniesz tworzyć świetne aplikacje w Pythonie!
Spis treści
- O autorze
- O korektorze merytorycznym
- Podziękowania
- Wprowadzenie
- Do kogo jest skierowana ta książka?
- Czego nauczysz się z tej książki?
- Dlaczego Python?
- Część I Podstawy
- Rozdział 1. Rozpoczęcie pracy
- Przygotowanie środowiska programistycznego
- Python 2 i Python 3
- Wykonanie fragmentu kodu w Pythonie
- Witaj, świecie!
- Python w różnych systemach operacyjnych
- Python w systemach z rodziny Linux
- Sprawdzenie zainstalowanej wersji Pythona
- Instalacja edytora tekstu
- Uruchomienie programu typu Witaj, świecie!
- Wykonanie kodu Pythona w powłoce
- Python w systemie OS X
- Sprawdzenie zainstalowanej wersji Pythona
- Użycie Pythona w sesji powłoki
- Instalacja edytora tekstu
- Konfiguracja Sublime Text dla Pythona 3
- Uruchomienie programu typu Witaj, świecie!
- Python w systemie Windows
- Instalacja Pythona
- Uruchomienie Pythona w sesji wiersza polecenia
- Użycie Pythona w sesji wiersza polecenia
- Instalacja edytora tekstu
- Konfiguracja edytora Geany
- Uruchomienie programu typu Witaj, świecie!
- Python w systemach z rodziny Linux
- Rozwiązywanie problemów podczas instalacji
- Uruchamianie programów Pythona z poziomu powłoki
- W systemach Linux i OS X
- W systemie Windows
- Podsumowanie
- Przygotowanie środowiska programistycznego
- Rozdział 2. Zmienne i proste typy danych
- Co tak naprawdę dzieje się po uruchomieniu hello_world.py?
- Zmienne
- Nadawanie nazw zmiennym i używanie zmiennych
- Unikanie błędów związanych z nazwami podczas używania zmiennych
- Ciągi tekstowe
- Zmiana wielkości liter ciągu tekstowego za pomocą metod
- Łączenie ciągów tekstowych
- Dodawanie białych znaków do ciągów tekstowych za pomocą tabulatora i znaku nowego wiersza
- Usunięcie białych znaków
- Unikanie błędów składni w ciągach tekstowych
- Wyświetlanie danych w Pythonie 2.x
- Liczby
- Liczby całkowite
- Liczby zmiennoprzecinkowe
- Unikanie błędów typu podczas pracy z funkcją str()
- Liczby całkowite w Pythonie 2
- Komentarze
- Jak można utworzyć komentarz?
- Jakiego rodzaju komentarze należy tworzyć?
- Zen Pythona
- Podsumowanie
- Rozdział 3. Wprowadzenie do list
- Czym jest lista?
- Uzyskanie dostępu do elementów listy
- Numeracja indeksu zaczyna się od 0, a nie od 1
- Użycie poszczególnych wartości listy
- Zmienianie, dodawanie i usuwanie elementów
- Modyfikowanie elementów na liście
- Dodawanie elementów do listy
- Umieszczanie elementu na końcu listy
- Wstawianie elementów na listę
- Usuwanie elementu z listy
- Usunięcie elementu listy za pomocą polecenia del
- Usunięcie elementu za pomocą metody pop()
- Usunięcie elementu z dowolnego miejsca na liście
- Usunięcie elementu na podstawie wartości
- Organizacja listy
- Trwałe sortowanie listy za pomocą metody sort()
- Tymczasowe sortowanie listy za pomocą funkcji sorted()
- Wyświetlanie listy w odwrotnej kolejności alfabetycznej
- Określenie wielkości listy
- Trwałe sortowanie listy za pomocą metody sort()
- Unikanie błędów indeksu podczas pracy z listą
- Podsumowanie
- Czym jest lista?
- Rozdział 4. Praca z listą
- Iteracja przez całą listę
- Dokładniejsza analiza pętli
- Wykonanie większej liczby zadań w pętli for
- Wykonywanie operacji po pętli for
- Unikanie błędów związanych z wcięciami
- Brak wcięcia
- Brak wcięcia dodatkowych wierszy
- Niepotrzebne wcięcie
- Niepotrzebne wcięcie po pętli
- Brak dwukropka
- Tworzenie list liczbowych
- Użycie funkcji range()
- Użycie funkcji range() do utworzenia listy liczb
- Proste dane statystyczne dotyczące listy liczb
- Lista składana
- Praca z fragmentami listy
- Wycinek listy
- Iteracja przez wycinek
- Kopiowanie listy
- Krotka
- Definiowanie krotki
- Iteracja przez wszystkie wartości krotki
- Nadpisanie krotki
- Styl tworzonego kodu
- Konwencje stylu
- Wcięcia
- Długość wiersza
- Puste wiersze
- Inne specyfikacje stylu
- Podsumowanie
- Iteracja przez całą listę
- Rozdział 5. Konstrukcja if
- Prosty przykład
- Test warunkowy
- Sprawdzenie równości
- Ignorowanie wielkości liter podczas sprawdzania równości
- Sprawdzenie nierówności
- Porównania liczbowe
- Sprawdzanie wielu warunków
- Użycie słowa kluczowego and do sprawdzania wielu warunków
- Użycie słowa kluczowego or do sprawdzania wielu warunków
- Sprawdzanie, czy wartość znajduje się na liście
- Sprawdzanie, czy wartość nie znajduje się na liście
- Wyrażenie boolowskie
- Polecenie if
- Proste polecenia if
- Polecenia if-else
- Łańcuch if-elif-else
- Użycie wielu bloków elif
- Pominięcie bloku else
- Sprawdzanie wielu warunków
- Używanie poleceń if z listami
- Sprawdzanie pod kątem wartości specjalnych
- Sprawdzanie, czy lista nie jest pusta
- Użycie wielu list
- Nadawanie stylu poleceniom if
- Podsumowanie
- Rozdział 6. Słowniki
- Prosty słownik
- Praca ze słownikami
- Uzyskiwanie dostępu do wartości słownika
- Dodanie nowej pary klucz-wartość
- Rozpoczęcie pracy od pustego słownika
- Modyfikowanie wartości słownika
- Usuwanie pary klucz-wartość
- Słownik podobnych obiektów
- Iteracja przez słownik
- Iteracja przez wszystkie pary klucz-wartość
- Iteracja przez wszystkie klucze słownika
- Iteracja przez uporządkowane klucze słownika
- Iteracja przez wszystkie wartości słownika
- Zagnieżdżanie
- Lista słowników
- Lista w słowniku
- Słownik w słowniku
- Podsumowanie
- Rozdział 7. Dane wejściowe użytkownika i pętla while
- Jak działa funkcja input()?
- Przygotowanie jasnych i zrozumiałych komunikatów
- Użycie funkcji int() do akceptowania liczbowych danych wejściowych
- Operator modulo
- Akceptacja danych wejściowych w Pythonie 2.7
- Wprowadzenie do pętli while
- Pętla while w działaniu
- Umożliwienie użytkownikowi podjęcia decyzji o zakończeniu działania programu
- Użycie flagi
- Użycie polecenia break do opuszczenia pętli
- Użycie polecenia continue w pętli
- Unikanie pętli działającej w nieskończoność
- Użycie pętli while wraz z listami i słownikami
- Przenoszenie elementów z jednej listy na drugą
- Usuwanie z listy wszystkich egzemplarzy określonej wartości
- Umieszczenie w słowniku danych wejściowych wprowadzonych przez użytkownika
- Podsumowanie
- Jak działa funkcja input()?
- Rozdział 8. Funkcje
- Definiowanie funkcji
- Przekazywanie informacji do funkcji
- Argumenty i parametry
- Przekazywanie argumentów
- Argumenty pozycyjne
- Wiele wywołań funkcji
- W przypadku argumentów pozycyjnych kolejność ma znaczenie
- Argumenty w postaci słów kluczowych
- Wartości domyślne
- Odpowiedniki wywołań funkcji
- Unikanie błędów związanych z argumentami
- Argumenty pozycyjne
- Wartość zwrotna
- Zwrot prostej wartości
- Definiowanie argumentu jako opcjonalnego
- Zwrot słownika
- Używanie funkcji wraz z pętlą while
- Przekazywanie listy
- Modyfikowanie listy w funkcji
- Uniemożliwianie modyfikowania listy przez funkcję
- Przekazywanie dowolnej liczby argumentów
- Argumenty pozycyjne i przekazywanie dowolnej liczby argumentów
- Używanie dowolnej liczby argumentów w postaci słów kluczowych
- Przechowywanie funkcji w modułach
- Import całego modułu
- Import określonych funkcji
- Użycie słowa kluczowego as w celu zdefiniowania aliasu funkcji
- Użycie słowa kluczowego as w celu zdefiniowania aliasu modułu
- Import wszystkich funkcji modułu
- Nadawanie stylu funkcjom
- Podsumowanie
- Definiowanie funkcji
- Rozdział 9. Klasy
- Utworzenie i użycie klasy
- Utworzenie klasy Dog
- Metoda __init__()
- Utworzenie klasy w Pythonie 2.7
- Utworzenie egzemplarza na podstawie klasy
- Uzyskanie dostępu do atrybutów
- Wywoływanie metod
- Utworzenie wielu egzemplarzy
- Utworzenie klasy Dog
- Praca z klasami i egzemplarzami
- Klasa Car
- Przypisanie atrybutowi wartości domyślnej
- Modyfikacja wartości atrybutu
- Bezpośrednia modyfikacja wartości atrybutu
- Modyfikacja wartości atrybutu za pomocą metody
- Inkrementacja wartości atrybutu za pomocą metody
- Dziedziczenie
- Metoda __init__() w klasie potomnej
- Dziedziczenie w Pythonie 2.7
- Definiowanie atrybutów i metod dla klasy potomnej
- Nadpisywanie metod klasy nadrzędnej
- Egzemplarz jako atrybut
- Modelowanie rzeczywistych obiektów
- Import klas
- Import pojedynczej klasy
- Przechowywanie wielu klas w module
- Import wielu klas z modułu
- Import całego modułu
- Import wszystkich klas z modułu
- Import modułu w module
- Określenie swojego sposobu pracy
- Biblioteka standardowa Pythona
- Nadawanie stylu klasom
- Podsumowanie
- Utworzenie i użycie klasy
- Rozdział 10. Pliki i wyjątki
- Odczytywanie danych z pliku
- Wczytywanie całego pliku
- Ścieżka dostępu do pliku
- Odczytywanie wiersz po wierszu
- Utworzenie listy wierszy na podstawie zawartości pliku
- Praca z zawartością pliku
- Ogromne pliki, czyli na przykład milion cyfr
- Czy data Twoich urodzin znajduje się w liczbie pi?
- Zapisywanie danych w pliku
- Zapisywanie danych do pustego pliku
- Zapisywanie wielu wierszy
- Dołączanie do pliku
- Wyjątki
- Obsługiwanie wyjątku ZeroDivisionError
- Używanie bloku try-except
- Używanie wyjątków w celu uniknięcia awarii programu
- Blok else
- Obsługa wyjątku FileNotFoundError
- Analiza tekstu
- Praca z wieloma plikami
- Ciche niepowodzenie
- Które błędy należy zgłaszać?
- Przechowywanie danych
- Używanie json.dump() i json.load()
- Zapisywanie i odczytywanie danych wygenerowanych przez użytkownika
- Refaktoryzacja
- Podsumowanie
- Odczytywanie danych z pliku
- Rozdział 11. Testowanie kodu
- Testowanie funkcji
- Test jednostkowy i zestaw testów
- Zaliczenie testu
- Niezaliczenie testu
- Reakcja na niezaliczony test
- Dodanie nowego testu
- Testowanie klasy
- Różne rodzaje metod asercji
- Klasa do przetestowania
- Testowanie klasy AnonymousSurvey
- Metoda setUp()
- Podsumowanie
- Testowanie funkcji
- Rozdział 1. Rozpoczęcie pracy
- Część II Projekty
- Inwazja obcych, czyli utworzenie gry w Pythonie
- Wizualizacja danych
- Aplikacje sieciowe
- Projekt 1 Inwazja obcych
- Rozdział 12. Statek, który strzela pociskami
- Planowanie projektu
- Instalacja Pygame
- Instalacja pakietów Pythona za pomocą pip
- Sprawdzenie menedżera pip w systemach Linux i OS X
- Sprawdzenie menedżera pip w systemie Windows
- Instalacja menedżera pip
- Instalacja menedżera pip w systemach Linux i OS X
- Instalacja menedżera pip w systemie Windows
- Instalacja Pygame w systemie Linux
- Instalacja Pygame w systemie OS X
- Instalacja Pygame w systemie Windows
- Instalacja pakietów Pythona za pomocą pip
- Rozpoczęcie pracy nad projektem gry
- Utworzenie okna Pygame i reagowanie na działania użytkownika
- Zdefiniowanie koloru tła
- Utworzenie klasy ustawień
- Dodanie obrazu statku kosmicznego
- Utworzenie klasy statku kosmicznego
- Wyświetlenie statku kosmicznego na ekranie
- Refaktoryzacja, czyli moduł game_functions
- Funkcja check_events()
- Funkcja update_screen()
- Kierowanie statkiem kosmicznym
- Reakcja na naciśnięcie klawisza
- Umożliwienie nieustannego ruchu
- Poruszanie statkiem w obu kierunkach
- Dostosowanie szybkości statku
- Ograniczenie zasięgu poruszania się statku
- Refaktoryzacja funkcji check_events()
- Krótkie powtórzenie
- alien_invasion.py
- settings.py
- game_functions.py
- ship.py
- Wystrzeliwanie pocisków
- Dodawanie ustawień dotyczących pocisków
- Utworzenie klasy Bullet
- Przechowywanie pocisków w grupie
- Wystrzeliwanie pocisków
- Usuwanie niewidocznych pocisków
- Ograniczenie liczby pocisków
- Utworzenie funkcji update_bullets()
- Utworzenie funkcji fire_bullet()
- Podsumowanie
- Rozdział 13. Obcy!
- Przegląd projektu
- Utworzenie pierwszego obcego
- Utworzenie klasy Alien
- Utworzenie egzemplarza obcego
- Wyświetlenie obcego na ekranie
- Utworzenie floty obcych
- Ustalenie maksymalnej liczby obcych wyświetlanych w jednym rzędzie
- Utworzenie rzędów obcych
- Utworzenie floty
- Refaktoryzacja funkcji create_fleet()
- Dodawanie rzędów
- Poruszanie flotą obcych
- Przesunięcie obcych w prawo
- Zdefiniowanie ustawień dla kierunku poruszania się floty
- Sprawdzenie, czy obcy dotarł do krawędzi ekranu
- Przesunięcie floty w dół i zmiana kierunku
- Zestrzeliwanie obcych
- Wykrywanie kolizji z pociskiem
- Utworzenie większych pocisków w celach testowych
- Ponowne utworzenie floty
- Zwiększenie szybkości pocisku
- Refaktoryzacja funkcji update_bullets()
- Zakończenie gry
- Wykrywanie kolizji między obcym i statkiem
- Reakcja na kolizję między obcym i statkiem
- Obcy, który dociera do dolnej krawędzi ekranu
- Koniec gry!
- Ustalenie, które komponenty gry powinny być uruchomione
- Podsumowanie
- Rozdział 14. Punktacja
- Dodanie przycisku Gra
- Utworzenie klasy Button
- Wyświetlenie przycisku na ekranie
- Uruchomienie gry
- Zerowanie gry
- Dezaktywacja przycisku Gra
- Ukrycie kursora myszy
- Zmiana poziomu trudności
- Zmiana ustawień dotyczących szybkości
- Wyzerowanie szybkości
- Punktacja
- Wyświetlanie punktacji
- Utworzenie tablicy wyników
- Uaktualnienie punktacji po zestrzeleniu obcego
- Zagwarantowanie uwzględnienia wszystkich trafień
- Zwiększenie liczby zdobywanych punktów
- Zaokrąglanie punktacji
- Najlepsze wyniki
- Wyświetlenie aktualnego poziomu gry
- Wyświetlenie liczby statków
- Podsumowanie
- Dodanie przycisku Gra
- Rozdział 12. Statek, który strzela pociskami
- Projekt 2 Wizualizacja danych
- Rozdział 15. Generowanie danych
- Instalacja matplotlib
- Linux
- OS X
- Windows
- Testowanie matplotlib
- Galeria matplotlib
- Wygenerowanie prostego wykresu liniowego
- Zmienianie etykiety i grubości wykresu
- Poprawianie wykresu
- Używanie funkcji scatter() do wyświetlania poszczególnych punktów i nadawania im stylu
- Wyświetlanie serii punktów za pomocą funkcji scatter()
- Automatyczne obliczanie danych
- Usuwanie konturów z wyświetlanych punktów danych
- Definiowanie własnych kolorów
- Użycie mapy kolorów
- Automatyczny zapis wykresu
- Błądzenie losowe
- Utworzenie klasy RandomWalk
- Wybór kierunku
- Wyświetlenie wykresu błądzenia losowego
- Wygenerowanie wielu błądzeń losowych
- Nadawanie stylu danym wygenerowanym przez błądzenie losowe
- Kolorowanie punktów
- Kolorowanie punktów początkowego i końcowego
- Ukrywanie osi
- Dodawanie punktów do wykresu
- Zmienianie wielkości wykresu, aby wypełnił ekran
- Symulacja rzutu kością do gry za pomocą Pygal
- Instalacja Pygal
- Galeria Pygal
- Utworzenie klasy Die
- Rzut kością do gry
- Analiza wyników
- Utworzenie histogramu
- Rzut dwiema kośćmi
- Rzut kośćmi o różnej liczbie ścianek
- Podsumowanie
- Instalacja matplotlib
- Rozdział 16. Pobieranie danych
- Format CSV
- Przetwarzanie nagłówków pliku CSV
- Wyświetlanie nagłówków i ich położenia
- Wyodrębnienie i odczytanie danych
- Wyświetlenie danych na wykresie temperatury
- Moduł datetime
- Wyświetlanie daty
- Wyświetlenie dłuższego przedziału czasu
- Wyświetlenie drugiej serii danych
- Nakładanie cienia na wykresie
- Sprawdzenie pod kątem błędów
- Mapowanie globalnych zbiorów danych format JSON
- Pobranie danych dotyczących populacji świata
- Wyodrębnienie interesujących nas danych
- Konwersja ciągu tekstowego na wartość liczbową
- Pobranie dwuznakowego kodu państwa
- Budowanie mapy świata
- Wyświetlenie danych liczbowych na mapie świata
- Wyświetlenie pełnej mapy populacji
- Grupowanie państw według populacji
- Nadawanie stylu mapie świata w Pygal
- Rozjaśnienie motywu graficznego
- Podsumowanie
- Format CSV
- Rozdział 17. Praca z API
- Użycie Web API
- Git i GitHub
- Żądanie danych za pomocą wywołania API
- Instalacja requests
- Przetworzenie odpowiedzi API
- Praca ze słownikiem odpowiedzi
- Podsumowanie repozytoriów najczęściej oznaczanych gwiazdką
- Monitorowanie ograniczeń liczby wywołań API
- Wizualizacja repozytoriów za pomocą pakietu Pygal
- Dopracowanie wykresów generowanych przez Pygal
- Dodanie własnych podpowiedzi
- Wyświetlanie danych
- Dodawanie łączy do wykresu
- Hacker News API
- Podsumowanie
- Użycie Web API
- Rozdział 15. Generowanie danych
- Projekt 3 Aplikacje sieciowe
- Rozdział 18. Rozpoczęcie pracy z Django
- Przygotowanie projektu
- Opracowanie specyfikacji
- Utworzenie środowiska wirtualnego
- Instalacja virtualenv
- Aktywacja środowiska wirtualnego
- Instalacja frameworka Django
- Utworzenie projektu w Django
- Utworzenie bazy danych
- Przegląd projektu
- Uruchomienie aplikacji
- Definiowanie modeli
- Aktywacja modeli
- Witryna administracyjna Django
- Konfiguracja superużytkownika
- Rejestracja modelu w witrynie administracyjnej
- Dodanie tematu
- Zdefiniowanie modelu Entry
- Migracja modelu Entry
- Rejestracja modelu Entry w witrynie administracyjnej
- Powłoka Django
- Tworzenie stron internetowych strona główna aplikacji
- Mapowanie adresu URL
- Utworzenie widoku
- Utworzenie szablonu
- Utworzenie dodatkowych stron
- Dziedziczenie szablonu
- Szablon nadrzędny
- Szablon potomny
- Strona tematów
- Wzorzec URL dla strony tematów
- Widok tematów
- Szablon tematów
- Strony poszczególnych tematów
- Wzorzec adresu URL dla tematu
- Widok tematu
- Szablon tematu
- Łącza ze strony tematów
- Dziedziczenie szablonu
- Podsumowanie
- Przygotowanie projektu
- Rozdział 19. Konta użytkowników
- Umożliwienie użytkownikom wprowadzania danych
- Dodawanie nowego tematu
- Formularz modelu dla tematu
- Adres URL dla strony new_topic
- Funkcja widoku new_topic()
- Żądania GET i POST
- Szablon dla strony new_topic
- Dodanie łącza prowadzącego na stronę new_topic
- Dodawanie nowych wpisów
- Formularz modelu dla wpisu
- Adres URL dla strony new_entry
- Funkcja widoku new_entry()
- Szablon dla strony new_entry
- Dodanie łącza prowadzącego na stronę new_entry
- Edycja wpisu
- Adres URL dla strony edit_entry
- Funkcja widoku edit_entry()
- Szablon dla strony edit_entry
- Dodanie łącza prowadzącego na stronę edit_entry
- Dodawanie nowego tematu
- Konfiguracja kont użytkowników
- Aplikacja users
- Dodanie aplikacji users do pliku settings.py
- Dołączanie adresów URL z aplikacji users
- Strona logowania
- Szablon dla strony logowania
- Dodanie łącza prowadzącego na stronę logowania
- Użycie strony logowania
- Wylogowanie
- Adres URL dla strony wylogowania
- Funkcja widoku logout_view()
- Dodanie łącza umożliwiającego wylogowanie
- Strona rejestracji użytkownika
- Adres URL dla strony rejestracji użytkownika
- Funkcja widoku register()
- Szablon dla strony rejestracji użytkownika
- Dodanie łącza prowadzącego na stronę rejestracji użytkownika
- Aplikacja users
- Umożliwienie użytkownikom bycia właścicielami swoich danych
- Ograniczenie dostępu za pomocą dekoratora @login_required
- Ograniczenie dostępu do strony tematów
- Ograniczenie dostępu w aplikacji Learning Log
- Powiązanie danych z określonymi użytkownikami
- Modyfikacja modelu Topic
- Identyfikacja istniejących użytkowników
- Migracja bazy danych
- Przyznanie dostępu jedynie odpowiednim użytkownikom
- Ochrona tematów użytkownika
- Ochrona strony edit_entry
- Powiązanie nowego tematu z bieżącym użytkownikiem
- Ograniczenie dostępu za pomocą dekoratora @login_required
- Podsumowanie
- Umożliwienie użytkownikom wprowadzania danych
- Rozdział 20. Nadanie stylu i wdrożenie aplikacji
- Nadanie stylu aplikacji Learning Log
- Aplikacja django-bootstrap3
- Użycie Bootstrapa do nadania stylu aplikacji Learning Log
- Modyfikacja pliku base.html
- Zdefiniowanie nagłówków HTML
- Zdefiniowanie paska nawigacji
- Zdefiniowanie części głównej strony
- Użycie elementu Jumbotron do nadania stylu stronie głównej
- Nadanie stylu stronie logowania
- Nadanie stylu stronie new_topic
- Nadanie stylu stronie tematów
- Nadanie stylów wpisom na stronie tematu
- Wdrożenie aplikacji Learning Log
- Utworzenie konta w Heroku
- Instalacja Heroku Toolbelt
- Instalacja wymaganych pakietów
- Utworzenie listy pakietów w pliku requirements.txt
- Określenie środowiska uruchomieniowego Pythona
- Modyfikacja pliku settings.py dla Heroku
- Utworzenie pliku Procfie do uruchomienia procesu
- Modyfikacja pliku wsgi.py dla Heroku
- Utworzenie katalogu dla plików statycznych
- Użycie serwera gunicorn w środowisku lokalnym
- Użycie Gita do monitorowania plików projektu
- Instalacja Git
- Konfiguracja Git
- Ignorowanie plików
- Zatwierdzenie projektu
- Przekazanie projektu do Heroku
- Konfiguracja bazy danych w Heroku
- Dopracowanie wdrożenia projektu w Heroku
- Utworzenie superużytkownika w Heroku
- Utworzenie przyjaznego dla użytkownika adresu URL aplikacji w Heroku
- Zabezpieczenie wdrożonego projektu
- Zatwierdzenie zmian i przekazanie ich do serwera
- Utworzenie własnych stron błędu
- Utworzenie własnych szablonów
- Lokalne wyświetlanie stron błędów
- Przekazywanie zmian do Heroku
- Użycie metody get_object_or_404()
- Nieustanna rozbudowa
- Opcja SECRET_KEY
- Usunięcie projektu z Heroku
- Podsumowanie
- Nadanie stylu aplikacji Learning Log
- Posłowie
- Dodatek A Instalacja Pythona
- Python w systemie Linux
- Ustalenie zainstalowanej wersji
- Instalacja Pythona 3 w systemie Linux
- Python w systemie OS X
- Ustalenie zainstalowanej wersji
- Użycie menedżera Homebrew do instalacji Pythona 3
- Instalacja Homebrew
- Instalacja Pythona 3
- Python w Windows
- Instalacja Pythona 3 w Windows
- Odszukanie interpretera Pythona
- Dodanie Pythona do zmiennej Path
- Słowa kluczowe Pythona i wbudowane funkcje
- Słowa kluczowe Pythona
- Wbudowane funkcje Pythona
- Python w systemie Linux
- Dodatek B Edytory tekstu
- Geany
- Instalacja Geany w systemie Linux
- Instalacja Geany w systemie Windows
- Uruchamianie programów Python w Geany
- Dostosowanie ustawień Geany do własnych potrzeb
- Konwertowanie tabulatorów na spacje
- Ustawianie wskaźnika długości linii
- Wcięcia i brak wcięć bloków kodu
- Umieszczenie bloku kodu w komentarzu
- Sublime Text
- Instalacja Sublime Text w systemie OS X
- Instalacja Sublime Text w systemie Linux
- Instalacja Sublime Text w...
- Geany
- Rozdział 18. Rozpoczęcie pracy z Django
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-2596-8 |
Rozmiar pliku: | 6,9 MB |