Django – kopiowanie danych między projektami, czyli bardziej zaawansowane migracje.

Framework Django daje możliwość ręcznego budowania migracji. Jest to bardzo przydatne jeśli potrzebujemy dodać do aplikacji jakieś dane na początek. Ja wykorzystałam ostatnio tę możliwość do skopiowania danych ze starej do nowej wersji aplikacji. Do tej operacji potrzebna mi była jeszcze umiejętność łączenia się z dwiema bazami jednocześnie, oraz uruchamiania zapytań SQL, czyli pracy na bazie z pominięciem mechanizmów oferowanych przez ORM. Jak do tego doszło?

Czytaj dalejDjango – kopiowanie danych między projektami, czyli bardziej zaawansowane migracje.

Django – strefa czasowa

Pisząc aplikację na ogół chcemy, żeby panował porządek w zmiennych typu datetype. Opieranie się na czasach lokalnych serwera na którym uruchomiona jest aplikacja i serwera bazy danych może prowadzić do bałaganu w najlepszym razie, kiedy strefy czasowe tych serwerów nie są zgodne a co gorsza inne niż strefa czasowa w której funkcjonują użytkownicy aplikacji. Warto więc zadbać o odpowiednią konfigurację.

Czytaj dalejDjango – strefa czasowa

Uruchamianie aplikacji python jako usługi w systemie Windows

Wspominałam, że pracuję nas schedulerem w aplikacji opartej o framework web2py. Tak jak obiecałam, napiszę o tym wkrótce. Tymczasem musiałam rozwiązać inny problem związany z tym zagadnieniem. Wspomnę tylko, że aby zadania schedulera działały, trzeba uruchomić odpowiedni worker, który pracuje w tle i zażąda uruchamianiem zdefiniowanych w bazie zadań. Można oczywiście worker uruchamiać ręcznie, ale wtedy każde wyłączenie aplikacji czy systemu powoduje, że worker trzeba uruchamiać ponownie. Wiadomo co się stanie jak ktoś o tym zapomni przy restarcie aplikacji po niespodziewanym jej zatrzymaniu. O wiele lepiej jest zdefiniować worker jako usługę systemu Windows, uruchomić ją i po prostu o niej zapomnieć.

Czytaj dalejUruchamianie aplikacji python jako usługi w systemie Windows

Web2py – automatyczne tworzenie tabel systemowych w nowej aplikacji.

Web2py jest kompletnym frameworkem mieszczącym w sobie wiele poręcznych narzędzi ulokowanych w panelu administracyjnym. Znajduje się tam przede wszystkim, kreator aplikacji, który pozwala jednym kliknięciem stworzyć kompletną strukturę nowej aplikacji. Należy jednak pamiętać, że taka aplikacja będzie z definicji połączona z bazą SQLite. Jeśli tuż po utworzeniu, nie modyfikując ustawień aplikacji, uruchomimy ją zostanie wykonana automatyczna migracja tabel systemowych do tej bazy. W przypadku takiej surowej aplikacji są to tabele związane z autoryzacją u uwierzytelnieniem dołączane przez klasę Auth, której obiekt jest z definicji zainicjowany w nowej aplikacji.

Czytaj dalejWeb2py – automatyczne tworzenie tabel systemowych w nowej aplikacji.

Przygotowanie środowiska wirtualnego dla gotowej aplikacji Django

Czasem zdarza się, że dysponujemy gotową albo w jakimś tam stopniu ukończona aplikacją Django i musimy ją uruchomić w nowym środowisku. Dzieje się tak w co najmniej trzech przypadkach. Po pierwsze gdy swoją aplikację chcesz uruchomić na serwerze produkcyjnym. Po drugie kiedy zaczynasz współdzielić kod i ty albo twój współpracownik ma pobrać kod aplikacji z repozytorium Git i utworzyć dla niej lokalne środowisko wirtualne. Po trzecie kiedy potrzebujesz kopii aplikacji do testowania rożnych bibliotek i nie chcesz “bałaganić” w swoim środowisku, w bazie i w aplikacji nad którą pracujesz.

Czytaj dalejPrzygotowanie środowiska wirtualnego dla gotowej aplikacji Django

Kodowanie znaków w MSSQL

Kiedy pisze się aplikacje oparte na takich frameworkach jak web2py jest wiele rzeczy o które programista nie musi się martwić, szczególnie jeśli korzysta w pełni z wbudowanych mechanizmów, takich jak choćby smartgrid. To one odpowiadają na przykład za wczytanie danych z bazy i ich prezentację. Ostatnio jednak przyszło mi zrobić coś nieco ambitniejszego. Jeden z naszych klientów potrzebuje przesłać dane ze swojej bazy do systemu RaksSQL, a jednym z lepszych na to sposobów jest przygotowanie odpowiedniego pliku XML. I tu zaczynają się problemy z kodowaniem znaków w bazie i pliku jaki chcemy wyprodukować.

Czytaj dalejKodowanie znaków w MSSQL