reklama - zainteresowany?

Tworzenie aplikacji internetowych w Django - Helion

Tworzenie aplikacji internetowych w Django
Autor: Ben Shaw, Saurabh Badhwar, Andrew Bird, Bharath Chandra K S, Chris Guest
Tytuł oryginału: Web Development with Django: Learn to build modern web applications with a Python-based framework
TÅ‚umaczenie: Joanna Zatorska
ISBN: 978-83-283-8364-7
stron: 788, Format: 164x239, okładka: twarda
Data wydania: 2022-04-01
Księgarnia: Helion

Cena książki: 77,40 zł (poprzednio: 129,00 zł)
Oszczędzasz: 40% (-51,60 zł)

Dodaj do koszyka Tworzenie aplikacji internetowych w Django

Tagi: Inne

Django zaskarbi

Dodaj do koszyka Tworzenie aplikacji internetowych w Django

 

Osoby które kupowały "Tworzenie aplikacji internetowych w Django", wybierały także:

  • Windows Media Center. Domowe centrum rozrywki
  • Przywództwo w Å›wiecie VUCA. Jak być skutecznym liderem w niepewnym Å›rodowisku
  • Mapa Agile & Scrum. Jak si
  • Sztuka podst
  • Lean dla bystrzaków. Wydanie II

Dodaj do koszyka Tworzenie aplikacji internetowych w Django

Spis treści

Django. Tworzenie nowoczesnych aplikacji internetowych w Pythonie -- spis treści

Wstęp

Wprowadzenie

Rozdział 1. Wprowadzenie do Django

  • WstÄ™p
  • Tworzenie szkieletu projektu i aplikacji Django
    • Ćwiczenie 1.1. Tworzenie projektu, aplikacji oraz serwera roboczego
  • Paradygmat Model View Template
    • Modele
    • Widoki
    • Szablony
    • WstÄ™p do HTTP
    • Przetwarzanie żądania
    • Projekt Django
    • Aplikacje Django
    • Konfiguracja programu PyCharm
    • Ćwiczenie 1.2. Konfiguracja projektu w programie PyCharm
    • SzczegóÅ‚owe informacje o widokach
    • Mapowanie adresów URL
    • Ćwiczenie 1.3. Pisanie widoku i odwzorowania URL
    • GET, POST i obiekty QueryDict
    • Ćwiczenie 1.4. Sprawdzanie wartoÅ›ci GET i korzystanie z obiektu QueryDict
    • Analiza ustawieÅ„ Django
    • Znajdowanie szablonów HTML w katalogach aplikacji
    • Ćwiczenie 1.5. Tworzenie katalogu templates oraz szablonu bazowego
    • Renderowanie szablonu za pomocÄ… funkcji render
    • Ćwiczenie 1.6. Renderowanie szablonu w widoku
    • Renderowanie zmiennych w szablonach
    • Ćwiczenie 1.7. Użycie zmiennych w szablonach
    • Debugowanie i obsÅ‚uga bÅ‚Ä™dów
    • WyjÄ…tki
    • Ćwiczenie 1.8. Generowanie i wyÅ›wietlanie wyjÄ…tków
    • Debugowanie
    • Ćwiczenie 1.9. Debugowanie kodu
    • Zadanie 1.1. Tworzenie ekranu powitalnego witryny
    • Zadanie 1.2. Szkielet wyszukiwarki w witrynie Book
  • Podsumowanie

Rozdział 2. Modele i migracje

  • WstÄ™p
  • Bazy danych
    • Relacyjne bazy danych
    • Nierelacyjne bazy danych
    • Operacje bazodanowe z użyciem jÄ™zyka SQL
    • Typy danych w relacyjnych bazach danych
    • Ćwiczenie 2.1. Tworzenie bazy danych książek
  • Operacje CRUD w jÄ™zyku SQL
    • Operacje tworzenia w jÄ™zyku SQL
    • Operacje odczytu w jÄ™zyku SQL
    • Operacje aktualizacji w jÄ™zyku SQL
    • Operacje usuwania w jÄ™zyku SQL
    • ORM w platformie Django
    • Konfiguracja bazy danych i tworzenie aplikacji Django
    • Aplikacje Django
    • Migracje Django
    • Tworzenie modeli i migracji Django
    • Typy pól
    • Opcje pól
    • Klucze gÅ‚ówne
  • Relacje
    • Wiele do jednego
    • Wiele do wielu
    • Relacje jeden do jednego
    • Dodawanie modelu Review
    • Metody modeli
    • Migracja aplikacji reviews
  • Operacje bazodanowe CRUD w Django
    • Ćwiczenie 2.2. Tworzenie wpisu w bazie danych Bookr
    • Ćwiczenie 2.3. Tworzenie wpisu za pomocÄ… metody create()
    • Tworzenie obiektu z kluczem obcym
    • Ćwiczenie 2.4. Tworzenie rekordów dla relacji wiele do jednego
    • Ćwiczenie 2.5. Tworzenie rekordów z relacjami wiele do wielu
    • Ćwiczenie 2.6. Relacja wiele do wielu z wykorzystaniem metody add()
    • Użycie metod create() i set() podczas tworzenia relacji
    • Operacje odczytu
    • Ćwiczenie 2.7. Pobieranie obiektu za pomocÄ… metody get()
    • Zwracanie obiektu za pomocÄ… metody get()
    • Ćwiczenie 2.8. Użycie metody al() do pobrania zbioru obiektów
    • Pobieranie obiektów za pomocÄ… filtrowania
    • Ćwiczenie 2.9. Użycie metody filter() do pobierania obiektów
    • Filtrowanie za pomocÄ… wyszukiwania pól
    • Dopasowywanie wzorców w operacjach filtrowania
    • Pobieranie obiektów poprzez wykluczanie
    • Pobieranie obiektów za pomocÄ… metody order_by()
    • Przeszukiwanie relacji
    • Wyszukiwanie na podstawie kluczy obcych
    • Przeszukiwanie na podstawie nazwy modelu
    • Przeszukiwanie relacji z kluczem obcym za pomocÄ… instancji obiektu
    • Ćwiczenie 2.10. Znajdowanie obiektów na podstawie relacji wiele do wielu za pomocÄ… wyszukiwania pola
    • Ćwiczenie 2.11. Przeszukiwanie relacji wiele do wielu za pomocÄ… obiektów
    • Ćwiczenie 2.12. Przeszukiwanie relacji wiele do wielu za pomocÄ… metody set()
    • Ćwiczenie 2.13. Użycie metody update()
    • Ćwiczenie 2.14. Użycie metody delete()
    • Zadanie 2.1. Tworzenie modeli dla aplikacji do zarzÄ…dzania projektami
    • WypeÅ‚nianie danymi bazy danych projektu Bookr
  • Podsumowanie

Rozdział 3. Mapowanie URL, widoki i szablony

  • WstÄ™p
  • Widoki oparte na funkcjach
  • Widoki oparte na klasach
  • Konfiguracja URL
    • Ćwiczenie 3.1. Implementowanie prostego widoku opartego na funkcji
  • Szablony
    • Ćwiczenie 3.2. Użycie szablonów do wyÅ›wietlenia komunikatu powitalnego
  • JÄ™zyk szablonów Django
    • Ćwiczenie 3.3. WyÅ›wietlanie listy książek i recenzji
    • Dziedziczenie szablonów
    • Stylowanie szablonów za pomocÄ… biblioteki Bootstrap
    • Ćwiczenie 3.4. Dodawanie dziedziczenia szablonów i paska nawigacyjnego Bootstrapa
    • Zadanie 3.1. Implementacja widoku szczegóÅ‚ów książki
  • Podsumowanie

Rozdział 4. Wstęp do witryny administracyjnej Django

  • WstÄ™p
  • Tworzenie konta superużytkownika
    • Ćwiczenie 4.1. Tworzenie konta superużytkownika
  • Operacje CRUD za pomocÄ… aplikacji administracyjnej Django
    • Tworzenie
    • Pobieranie danych
    • Aktualizowanie
    • Usuwanie
    • Użytkownicy i grupy
    • Ćwiczenie 4.2. Dodawanie i modyfikowanie użytkowników i grup w aplikacji administracyjnej
  • Rejestrowanie modelu Reviews
    • Listy obiektów do edycji
    • Strona edycji modelu Publisher
    • Strona sÅ‚użąca do edycji książki
    • Ćwiczenie 4.3. Klucze obce i usuwanie z poziomu aplikacji administracyjnej
  • Dostosowywanie interfejsu administracyjnego
    • Poprawki dotyczÄ…ce caÅ‚ej witryny administracyjnej Django
    • Analiza obiektu AdminSite w powÅ‚oce Pythona
    • Zadanie 4.1. Dostosowywanie obiektu SiteAdmin
    • Dostosowywanie klas ModelAdmin
    • Ćwiczenie 4.4. Dodawanie filtra na podstawie daty oraz hierarchii dat
    • Pasek wyszukiwania
    • Wykluczanie i grupowanie pól
    • Zadanie 4.2. Dostosowywanie aplikacji administracyjnych dla modeli
  • Podsumowanie

RozdziaÅ‚ 5. Zwracanie plików statycznych

  • WstÄ™p
  • Zwracanie plików statycznych
    • Wprowadzenie do wyszukiwarek plików statycznych
    • Wyszukiwarki plików statycznych - użycie podczas obsÅ‚ugi żądania
    • AppDirectoriesFinder
    • Przestrzenie nazw plików statycznych
    • Ćwiczenie 5.1. Zwracanie pliku z katalogu aplikacji
    • Generowanie statycznych adresów URL za pomocÄ… znacznika szablonów static
    • Ćwiczenie 5.2. Użycie znacznika szablonów static
    • FileSystemFinder
    • Ćwiczenie 5.3. Zwracanie plików z katalogu static projektu
    • Wyszukiwarki plików statycznych - użycie polecenia collectstatic
    • Ćwiczenie 5.4. Kopiowanie plików statycznych dla Å›rodowiska produkcyjnego
    • Tryb STATICFILES_DIRS z przedrostkiem
    • Polecenie findstatic
    • Ćwiczenie 5.5. Znajdowanie plików poleceniem findstatic
    • Zwracanie ostatnich plików (w celu unieważnienia pamiÄ™ci podrÄ™cznej)
    • Ćwiczenie 5.6. Eksploracja silnika przechowywania ManifestFilesStorage
    • Niestandardowe silniki magazynowania
    • Zadanie 5.1. Dodawanie logo do aplikacji reviews
    • Zadanie 5.2. Ulepszenia w stylach CSS
    • Zadanie 5.3. Dodawanie globalnego logo
  • Podsumowanie

Rozdział 6. Formularze

  • WstÄ™p
  • Czym jest formularz?
    • Element <form>
    • Rodzaje pól wejÅ›ciowych
    • Ćwiczenie 6.1. Tworzenie formularza HTML
    • BezpieczeÅ„stwo formularza dziÄ™ki ochronie przeciwko Cross-Site Request Forgery
    • DostÄ™p do danych w widoku
    • Ćwiczenie 6.2. Pobieranie danych POST w widoku
    • Wybór miÄ™dzy żądaniami GET i POST
    • Dlaczego trzeba używać metody GET, jeÅ›li można umieÅ›cić parametry w URL?
  • Biblioteka Forms w Django
    • Definiowanie formularza
    • Renderowanie formularza w szablonie
    • Ćwiczenie 6.3. Tworzenie i renderowanie formularza Django
  • Walidacja formularzy i pobieranie wartoÅ›ci Pythona
    • Ćwiczenie 6.4. Walidacja formularza w widoku
    • Wbudowana walidacja pól
    • Ćwiczenie 6.5. Dodatkowa walidacja pól
    • Zadanie 6.1. Wyszukiwanie książek
  • Podsumowanie

Rozdział 7. Zaawansowana walidacja formularzy i formularzy modeli

  • WstÄ™p
  • Niestandardowa walidacja i czyszczenie pól
    • Niestandardowe walidatory
    • Metody oczyszczania
    • Walidacja na podstawie wielu pól
    • Ćwiczenie 7.1. Niestandardowe metody oczyszczania i walidacji
    • WartoÅ›ci zastÄ™pcze i poczÄ…tkowe
    • Ćwiczenie 7.2. WartoÅ›ci zastÄ™pcze i poczÄ…tkowe
    • Tworzenie i edytowanie modeli Django
    • Klasa ModelForm
    • Ćwiczenie 7.3. Tworzenie i edytowanie modelu Publisher
    • Zadanie 7.1. Stylowanie i integracja formularza modelu Publisher
    • Zadanie 7.2. Interfejs tworzenia instancji modelu Review
  • Podsumowanie

RozdziaÅ‚ 8. Zwracanie multimediów i przesyÅ‚anie plików

  • WstÄ™p
  • Ustawienia zwiÄ…zane z przesyÅ‚aniem i zwracaniem plików multimedialnych
    • Zwracanie plików multimedialnych w Å›rodowisku roboczym
    • Ćwiczenie 8.1. Konfiguracja magazynu plików multimedialnych i ich zwracanie
  • Procesory kontekstu i użycie opcji MEDIA_URL w szablonach
    • Ćwiczenie 8.2. Ustawienia szablonu i użycie opcji MEDIA_URL w szablonach
  • PrzesyÅ‚anie plików za pomocÄ… formularzy HTML
    • ObsÅ‚uga przesÅ‚anych plików w widoku
    • Ćwiczenie 8.3. PrzesyÅ‚anie i pobieranie plików
    • PrzesyÅ‚anie plików za pomocÄ… formularzy Django
    • Ćwiczenie 8.4. PrzesyÅ‚anie plików za pomocÄ… formularza Django
    • PrzesyÅ‚anie obrazów za pomocÄ… formularzy Django
    • Zmiana rozmiaru obrazów za pomocÄ… biblioteki Pillow
    • Ćwiczenie 8.5. PrzesyÅ‚anie obrazów za pomocÄ… formularzy Django
    • Zwracanie przesÅ‚anych (i innych) plików za pomocÄ… Django
  • Magazynowanie plików w instancjach modeli
    • Zapisywanie obrazów w instancjach modeli
    • Korzystanie z klasy FieldFile
    • OdwoÅ‚ywanie siÄ™ do plików multimedialnych w szablonach
    • Ćwiczenie 8.6. FileField i ImageField w modelach
    • Klasa ModelForm i przesyÅ‚anie plików
    • Ćwiczenie 8.7. PrzesyÅ‚anie plików i obrazów za pomocÄ… instancji klasy ModelForm
    • Zadanie 8.1. PrzesyÅ‚anie obrazu i plików PDF dotyczÄ…cych książek
    • Zadanie 8.2. WyÅ›wietlanie okÅ‚adki i Å‚Ä…cza do fragmentu książki
  • Podsumowanie

Rozdział 9. Sesje i uwierzytelnianie

  • WstÄ™p
  • Middleware
    • ModuÅ‚y middleware
    • Implementacja widoków i szablonów do uwierzytelniania
    • Ćwiczenie 9.1. Zmiana przeznaczenia szablonu logowania aplikacji administracyjnej
    • Przechowywanie haseÅ‚ w Django
    • Strona profilu i obiekt request.user
    • Ćwiczenie 9.2. Dodawanie strony profilu
    • Dekoratory uwierzytelniania i przekierowania
    • Ćwiczenie 9.3. Dodawanie dekoratorów uwierzytelniania do widoków
    • Dodawanie danych uwierzytelniania do szablonów
    • Ćwiczenie 9.4. PrzeÅ‚Ä…czanie Å‚Ä…czy logowania i wylogowania w bazowym szablonie
    • Zadanie 9.1. UdostÄ™pnianie treÅ›ci na podstawie stanu uwierzytelnienia za pomocÄ… bloków warunkowych w szablonach
  • Sesje
    • ModuÅ‚ pickle lub magazyn w formacie JSON
    • Ćwiczenie 9.5. Analiza klucza sesji
    • Przechowywanie danych w sesji
    • Ćwiczenie 9.6. Zapisywanie w sesji ostatnio wyÅ›wietlanych książek
    • Zadanie 9.2. Wykorzystanie magazynu sesji na stronie wyszukiwania książek
  • Podsumowanie

Rozdział 10. Zaawansowane aspekty aplikacji administracyjnej Django i jej dostosowywanie

  • WstÄ™p
  • Dostosowywanie witryny administracyjnej
    • Wykrywanie plików administracyjnych w Django
    • Klasa AdminSite w Django
    • Ćwiczenie 10.1. Tworzenie niestandardowej witryny administracyjnej w projekcie Bookr
    • Nadpisywanie domyÅ›lnej wÅ‚aÅ›ciwoÅ›ci admin.site
    • Ćwiczenie 10.2. Nadpisywanie domyÅ›lnej witryny administracyjnej
    • Dostosowanie tekstu w witrynie administracyjnej za pomocÄ… atrybutów AdminSite
    • Dostosowywanie szablonów witryny administracyjnej
    • Ćwiczenie 10.3. Dostosowanie szablonu wylogowania dla witryny administracyjnej Bookr
  • Dodawanie widoków do witryny administracyjnej
    • Tworzenie nowej funkcji widoku
    • DostÄ™p do wspólnych zmiennych szablonu
    • Mapowanie adresów URL na niestandardowy widok
    • Ograniczanie niestandardowych widoków do witryny administracyjnej
    • Ćwiczenie 10.4. Dodawanie niestandardowych widoków do witryny administracyjnej
    • Przekazywanie dodatkowych kluczy do szablonów za pomocÄ… zmiennych szablonów
    • Zadanie 10.1. Tworzenie niestandardowego interfejsu administracyjnego z wbudowanÄ… wyszukiwarkÄ…
  • Podsumowanie

RozdziaÅ‚ 11. Zaawansowane aspekty szablonów i widoki oparte na klasach

  • WstÄ™p
  • Filtry szablonów
  • Niestandardowe filtry szablonów
    • Filtry szablonów
    • Konfiguracja katalogu sÅ‚użącego do zapisywania filtrów szablonów
    • Konfiguracja biblioteki szablonów
    • Implementowanie niestandardowej funkcji filtra
    • Użycie niestandardowych filtrów w szablonach
    • Ćwiczenie 11.1. Tworzenie niestandardowego filtra szablonów
    • Filtry tekstowe
  • Znaczniki szablonów
    • Typy znaczników szablonów
    • Proste znaczniki
    • Tworzenie prostych znaczników szablonów
    • Ćwiczenie 11.2. Tworzenie niestandardowego prostego znacznika
    • Znaczniki wÅ‚Ä…czajÄ…ce
    • Ćwiczenie 11.3. Budowanie niestandardowego znacznika wÅ‚Ä…czajÄ…cego
  • Widoki Django
  • Widoki oparte na klasach
    • Ćwiczenie 11.4. Tworzenie katalogu książek w widoku opartym na klasach
    • Operacje CRUD za pomocÄ… widoków opartych na klasach
    • Zadanie 11.1. Renderowanie szczegóÅ‚ów na stronie profilu użytkownika za pomocÄ… znaczników wÅ‚Ä…czajÄ…cych
  • Podsumowanie

Rozdział 12. Tworzenie API REST-owego

  • WstÄ™p
  • API REST-owe
    • Django REST Framework
    • Instalacja i konfiguracja
    • Widoki API oparte na funkcjach
    • Ćwiczenie 12.1. Tworzenie prostego API REST-owego
  • Serializery
    • Ćwiczenie 12.2. Tworzenie widoku API w celu wyÅ›wietlenia listy książek
    • Widoki API oparte na klasach i widoki generyczne
    • Serializery modeli
    • Ćwiczenie 12.3. Tworzenie widoków API opartych na klasach i serializerów modeli
    • Zadanie 12.1. Tworzenie punktu koÅ„cowego API dla strony poÅ›wiÄ™conej najaktywniejszym wspóÅ‚autorom
  • Obiekty typu ViewSet
  • Routery
    • Ćwiczenie 12.4. Używanie zbiorów widoków i routerów
  • Uwierzytelnianie
    • Uwierzytelnianie oparte na tokenach
    • Ćwiczenie 12.5. Implementowanie uwierzytelniania opartego na tokenach w API aplikacji Bookr
  • Podsumowanie

RozdziaÅ‚ 13. Generowanie plików CSV, PDF i innych plików binarnych

  • WstÄ™p
    • ObsÅ‚uga plików CSV w Pythonie
  • Korzystanie z moduÅ‚u csv Pythona
    • Odczytywanie danych z pliku CSV
    • Ćwiczenie 13.1. Odczyt pliku CSV w Pythonie
    • Zapisywanie danych do plików CSV za pomocÄ… Pythona
    • Ćwiczenie 13.2. Generowanie pliku CSV za pomocÄ… moduÅ‚u Pythona csv
    • Lepszy sposób odczytu i zapisu plików CSV
  • Przetwarzanie plików Excela w Pythonie
    • Eksportowanie danych do plików binarnych
    • ObsÅ‚uga plików XLSX za pomocÄ… pakietu XlsxWriter
    • Ćwiczenie 13.3. Tworzenie plików XLSX w Pythonie
  • ObsÅ‚uga plików PDF w Pythonie
    • PrzeksztaÅ‚canie stron WWW do formatu PDF
    • Ćwiczenie 13.4. Generowanie dokumentu PDF na podstawie strony WWW w Pythonie
  • Tworzenie wykresów w Pythonie
    • Generowanie wykresów za pomocÄ… biblioteki plotly
    • Ćwiczenie 13.5. Generowanie wykresów w Pythonie
    • Integrowanie biblioteki plotly z Django
  • Integrowanie wizualizacji z Django
    • Ćwiczenie 13.6. Wizualizacja historii przeczytanych książek na stronie profilowej użytkownika
    • Zadanie 13.1. Eksportowanie książek przeczytanych przez użytkownika do pliku XLSX
  • Podsumowanie

Rozdział 14. Testowanie

  • WstÄ™p
  • Dlaczego testowanie jest ważne
  • Testy automatyczne
  • Testowanie w Django
    • Implementowanie przypadków testowych
    • Testy jednostkowe w Django
    • Korzystanie z asercji
    • Ćwiczenie 14.1. Pisanie prostego testu jednostkowego
    • Konfiguracja przed testami i czyszczenie po wykonaniu każdego przypadku testowego
  • Testowanie modeli Django
    • Ćwiczenie 14.2. Testowanie modeli Django
  • Testowanie widoków Django
    • Ćwiczenie 14.3. Pisanie przypadków testowych dla widoków Django
    • Testowanie widoków wymagajÄ…cych uwierzytelniania
    • Ćwiczenie 14.4. Pisanie przypadków testowych w celu walidacji uwierzytelnionych użytkowników
  • Klasa RequestFactory Django
    • Ćwiczenie 14.5. Testowanie widoków za pomocÄ… klasy RequestFactory
    • Testowanie widoków opartych na klasach
  • Klasy przypadków testowych w Django
    • SimpleTestCase
    • TransactionTestCase
    • LiveServerTestCase
    • Modularyzacja kodu testowego
    • Zadanie 14.1. Testowanie modeli i widoków w projekcie Bookr
  • Podsumowanie

Rozdział 15. Zewnętrzne biblioteki Django

  • WstÄ™p
    • Zmienne Å›rodowiskowe
    • django-configurations
    • Zmiany w pliku manage.py
    • Konfiguracja ze zmiennych Å›rodowiskowych
    • Ćwiczenie 15.1. Konfiguracja biblioteki django-configurations
    • dj-database-url
    • Ćwiczenie 15.2. Konfiguracja biblioteki dj-database-url
    • Django Debug Toolbar
    • Ćwiczenie 15.3. Konfiguracja narzÄ™dzia Django Debug Toolbar
  • django-crispy-forms
    • Filtr crispy
    • Znacznik szablonów crispy
    • Ćwiczenie 15.4. Użycie biblioteki Django Crispy Forms z formularzem SearchForm
    • django-allauth
    • Inicjalizacja uwierzytelniania za pomocÄ… biblioteki django-allauth
    • Zadanie 15.1. Aktualizacja formularza z wykorzystaniem klasy FormHelper
  • Podsumowanie

Rozdział 16. Używanie frontendowej biblioteki JavaScriptu z Django

  • WstÄ™p
  • Platformy JavaScriptu
  • Wprowadzenie do JavaScriptu
    • React
    • Komponenty
    • Ćwiczenie 16.1. Konfiguracja przykÅ‚adowej strony z wykorzystaniem Reacta
    • JSX
    • Ćwiczenie 16.2. JSX i Babel
    • WÅ‚aÅ›ciwoÅ›ci JSX
    • Ćwiczenie 16.3. WÅ‚aÅ›ciwoÅ›ci komponentu Reacta
    • Obiekty Promise w JavaScripcie
    • fetch
    • Ćwiczenie 16.4. Pobieranie i wyÅ›wietlanie książek
    • Znacznik szablonów verbatim
    • Zadanie 16.1. PodglÄ…d recenzji
  • Podsumowanie

Dodatek A

Skorowidz

Dodaj do koszyka Tworzenie aplikacji internetowych w Django

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.