Open Source

Społeczność

Ta strona, odświeżana co godzinę, zbiera wpisy z blogów na tematy związane z Django

Wspomaganie testów za pomocą ludibrio

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

W testach zakładamy jakieś testowe dane wejściowe dla których określamy oczekiwane poprawne dane wyjściowe. Problem pojawia się gdy nie możemy ustawić wszystkich danych wejściowych - np. gdy kod pobiera dane z zewnętrznego API, albo generuje losowe dane i je dalej przetwarza, formatuje. Pomocna do testowania takich "trudnych" przypadków może być biblioteka ludibrio.

Przeczytaj cały wpis »

Testowanie aplikacji Django z Selenium

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

Selenium to popularne narzędzie do automatyzowania operacji wykonywanych przez przeglądarkę. Głównym zastosowaniem Selenium są testy aplikacji webowych, w szczególności ich frontentu. Za pomocą tego narzędzia możemy pokryć testami bardziej frontendową część aplikacji, np. kod JavaScript - coś czego zwykłe testy nie są w stanie obsłużyć. Django 1.4 wprowadziło LiveServerTestCase - TestCase, który odpala własny serwer "deweloperski". To w efekcie umożliwiło łatwą integrację Selenium w testach Django. Selenium z Django 1.4 zaprezentowano m.in w prezentacji na benlopatin.com. W sieci jest wiele rozwiązań dotyczących starszych wersji Django, gdzie wykorzystanie Selenium wyglądało zupełnie inaczej. W tym artykule przedstawię wykorzystanie Selenium w testach Django.

Przeczytaj cały wpis »

Sklepy najbliżej ciebie - geografia z GeoDjango

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

Boom na urządzenia mobilne jak i powszechny dostęp do internetu wywołał spore zapotrzebowanie na usługi związane z nawigacją, geolokalizacją i wyszukiwaniem spersonalizowanym pod kątem obecnego położenia geograficznego. Obecnie da się już dość "łatwo" tworzyć aplikacje oferujące takie funkcjonalności. Django oferuje cały ogromny wewnętrzny framework - geodjango. W tym artykule zaprezentuję aplikację Django wykorzystującą kilka elementów geodjango do wyszukiwania najbliższych sklepów - na mapie i po odległości od podanego adresu. Aplikacja ta zaprezentuje podstawowe elementy GeoDjango (i całkiem ciekawe zastosowanie).

Przeczytaj cały wpis »

Ciągła integracja projektów Django za pomocą Jenkinsa

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

Jenkins to narzędzie do śledzenia wykonywanych zadań, do "ciągłej integracji" projektów. Aplikacja ta może śledzić wykonywanie zadań z crona, czy też sama wykonywać zadania jak np. testowanie i budowanie aplikacji gdy pojawi się nowa zmiana w repozytorium. Django może skorzystać z django-jenkins by zapewnić efektywną obsługę projektów Django w Jenkinsie. Django-Jenkins zapewnia informacje o pokryciu kodu testami, czy naruszenia pep8, pylint, pyflakes itd. W tym artykule zaprezentuję jak zacząć z Jenkinsem odpalając go lokalnie dla lokalnego kodu. W wersjach "produkcyjnych" Jenkins obserwowałby jakieś repozytorium, czy współpracował z jakimś systemem do recenzowania kodu (np. Gerritem).

Przeczytaj cały wpis »

Tymczasowe pliki w Django do testów i operacji na plikach w locie

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

Czasami w Django zachodzi potrzeba operacji na plikach w locie, np. przechwycenie wysłanego pliku z formularza, zmodyfikowanie go i podstawienie do modelu do zapisu. W testach formularzy też przyda nam się obiekt pliku, który pozwoli zwalidować formularz. ContentFile jest rozwiązaniem połowicznym - możemy np. ustawić ten obiekt jako wartość pola w modelu, ale już do formularza oczekującego na plik graficzny się nie nada. W sieci znajdziemy przykłady ze StringIO - ten obiekt sam też nie da rady bo brakuje mu metod jakie Django chce wywoływać. Jest na szczęście w Django InMemoryUploadedFile, które może przydać się do różnych operacji na plikach.

Przeczytaj cały wpis »

Owocna współpraca Django z JavaScriptem

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

Współpraca backendu z frontendem, czy backendu z kodem JavaScript frontendu nie jest sprawą oczywistą. Jeżeli nie chcemy "hardkodować" linków i danych w plikach js to musimy je w zwinny sposób przekazać z backendu do JavaScriptu. Pobierając dane poprzez żądania AJAX zazwyczaj będziemy chcieli mieć dane w formacie JSON. W tym artykule przedstawię kilka rozwiązań i dodatków do Django ułatwiających współpracę backedu Django z JavaScriptem.

Przeczytaj cały wpis »

memSQL i MariaDB w Django

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

memSQL to nowa baza danych oferująca wysoką wydajność dzięki wykorzystaniu pamięci RAM jako głównego składowiska danych jak i kompilacji zapytań (FAQ). Nie jest powiązana z MySQL, ale oferuje interfejs zgody z tą bazą danych co ułatwia jej wykorzystanie, czy szybkie przetestowanie. MariaDB to fork MySQL, binarnie zgodny z tą bazą danych. W odróżnieniu od "rodzica" MariaDB zawiera dodatkowe silniki do przechowywania danych i liczne dodatki - opisane w dokumentacji.

Przeczytaj cały wpis »

Migracje w Django za pomocą South

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

South to narzędzie do migracji struktury i danych zawartych w bazie danych dla aplikacji Django. South w praktycznie całkowicie zautomatyzowany sposób potrafi śledzić zmiany w modelach i tworzyć nowe migracje aktualizujące strukturę tabel w bazie danych. Ułatwia to rozwój aplikacji (nie trzeba tworzyć migracji ręcznie), jak i jej utrzymanie, zarządzanie (można cofnąć się do wybranej starszej migracji reprezentującej np. starszą wersję aplikacji).

Przeczytaj cały wpis »

Fabryki Factory Boy w testach Django

Posted on Listopad 7, 2012 at 10:15 po południu by Biblioteka Pythona | Django RSS

Factory Boy to narzędzie zastępującego Django fixtures, czy ręczne tworzenie danych w testach. Ułatwia tworzenie danych potrzebnych do testów, jak i łatwe utrzymanie ich wraz z rozwojem projektu i struktury modeli. Factory Boya znajdziemy na githubie. Dostępna jest też dokumentacja, czy prezentacja na PyWaw.

Przeczytaj cały wpis »

django-tastypie czyli wystawianie RESTowego API w aplikacjach Django

Posted on Listopad 6, 2012 at 1:15 po południu by Biblioteka Pythona | Django RSS

django-tastypie to obecnie chyba najlepsza aplikacja do wystawiania RESTowego API dla naszych aplikacji Django. Kod znajdziemy na githubie, a dokumentację na readthedocs.org. Za pomocą tastypie w łatwy sposób możemy udostępnić dane zapisane w wybranym modelu. API może być konfigurowane - np. wzbogacone o autoryzację, czy filtrowanie danych i dostępnych operacji jakie użytkownicy API mogą wykonać.

Przeczytaj cały wpis »

Wspomaganie testów za pomocą ludibrio

Posted on Listopad 6, 2012 at 1:15 po południu by Biblioteka Pythona | Django RSS

W testach zakładamy jakieś testowe dane wejściowe dla których określamy oczekiwane poprawne dane wyjściowe. Problem pojawia się gdy nie możemy ustawić wszystkich danych wejściowych - np. gdy kod pobiera dane z zewnętrznego API, albo generuje losowe dane i je dalej przetwarza, formatuje. Pomocna do testowania takich "trudnych" przypadków może być biblioteka ludibrio.

Przeczytaj cały wpis »

Testowanie aplikacji Django z Selenium

Posted on Listopad 6, 2012 at 1:15 po południu by Biblioteka Pythona | Django RSS

Selenium to popularne narzędzie do automatyzowania operacji wykonywanych przez przeglądarkę. Głównym zastosowaniem Selenium są testy aplikacji webowych, w szczególności ich frontentu. Za pomocą tego narzędzia możemy pokryć testami bardziej frontendową część aplikacji, np. kod JavaScript - coś czego zwykłe testy nie są w stanie obsłużyć. Django 1.4 wprowadziło LiveServerTestCase - TestCase, który odpala własny serwer "deweloperski". To w efekcie umożliwiło łatwą integrację Selenium w testach Django. Selenium z Django 1.4 zaprezentowano m.in w prezentacji na benlopatin.com. W sieci jest wiele rozwiązań dotyczących starszych wersji Django, gdzie wykorzystanie Selenium wyglądało zupełnie inaczej. W tym artykule przedstawię wykorzystanie Selenium w testach Django.

Przeczytaj cały wpis »

Sklepy najbliżej ciebie - geografia z GeoDjango

Posted on Listopad 6, 2012 at 1:15 po południu by Biblioteka Pythona | Django RSS

Boom na urządzenia mobilne jak i powszechny dostęp do internetu wywołał spore zapotrzebowanie na usługi związane z nawigacją, geolokalizacją i wyszukiwaniem spersonalizowanym pod kątem obecnego położenia geograficznego. Obecnie da się już dość "łatwo" tworzyć aplikacje oferujące takie funkcjonalności. Django oferuje cały ogromny wewnętrzny framework - geodjango. W tym artykule zaprezentuję aplikację Django wykorzystującą kilka elementów geodjango do wyszukiwania najbliższych sklepów - na mapie i po odległości od podanego adresu. Aplikacja ta zaprezentuje podstawowe elementy GeoDjango (i całkiem ciekawe zastosowanie).

Przeczytaj cały wpis »

Ciągła integracja projektów Django za pomocą Jenkinsa

Posted on Listopad 6, 2012 at 1:15 po południu by Biblioteka Pythona | Django RSS

Jenkins to narzędzie do śledzenia wykonywanych zadań, do "ciągłej integracji" projektów. Aplikacja ta może śledzić wykonywanie zadań z crona, czy też sama wykonywać zadania jak np. testowanie i budowanie aplikacji gdy pojawi się nowa zmiana w repozytorium. Django może skorzystać z django-jenkins by zapewnić efektywną obsługę projektów Django w Jenkinsie. Django-Jenkins zapewnia informacje o pokryciu kodu testami, czy naruszenia pep8, pylint, pyflakes itd. W tym artykule zaprezentuję jak zacząć z Jenkinsem odpalając go lokalnie dla lokalnego kodu. W wersjach "produkcyjnych" Jenkins obserwowałby jakieś repozytorium, czy współpracował z jakimś systemem do recenzowania kodu (np. Gerritem).

Przeczytaj cały wpis »

Tymczasowe pliki w Django do testów i operacji na plikach w locie

Posted on Listopad 6, 2012 at 1:15 po południu by Biblioteka Pythona | Django RSS

Czasami w Django zachodzi potrzeba operacji na plikach w locie, np. przechwycenie wysłanego pliku z formularza, zmodyfikowanie go i podstawienie do modelu do zapisu. W testach formularzy też przyda nam się obiekt pliku, który pozwoli zwalidować formularz. ContentFile jest rozwiązaniem połowicznym - możemy np. ustawić ten obiekt jako wartość pola w modelu, ale już do formularza oczekującego na plik graficzny się nie nada. W sieci znajdziemy przykłady ze StringIO - ten obiekt sam też nie da rady bo brakuje mu metod jakie Django chce wywoływać. Jest na szczęście w Django InMemoryUploadedFile, które może przydać się do różnych operacji na plikach.

Przeczytaj cały wpis »