Your SlideShare is downloading. ×
0
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Pyconpl2008 - Pogodzić Google App Engine z Django

650

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
650
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Pogodzić Google App Engine z Django Rafał Jońca http:/jonca.vdl.pl/ PyConPL 2008 18-19 październik 2008
  • 2. Zawartość  Google App Engine  Co to takiego? Jak działa?  Zalety, wady, ograniczenia, rynek  Django w App Engine  Jak? Co otrzymamy? Jakie wersje Django?  Projekty ułatwiające integrację  Jedna aplikacja, dwa podejścia  WebApp kontra Django GAE Helper  Testy w Django GAE Helper  Wnioski, wskazówki
  • 3. Google App Engine  Platforma dla aplikacji internetowych  zapewniająca:  Łatwość konfiguracji i wdrożenia  Wolność od zadań stricte administracyjnych  Skalowalność  Integracja z kontami Google (uwierzytelnianie)  Obsługa danych statycznych  Środowisko deweloperskie  Bezpłatny startowy pakiet liczby odsłon i  przechowywanych danych
  • 4. Architektura Żądanie/odpowiedź Interfejsy System tylko bezstanowe: do odczytu: zapytania HTTP, Proces biblioteki obrazy, maszyny wysyłka maili wirtualnej Pythona aplikacja Interfejsy memcache DataStore stanowe:
  • 5. Możliwe zastosowania  Własna witryna domowa  Niewielkie witryny lub aplikacje tematyczne  Proste witryny dla przedsiębiorstw nie działających  w obszarze WWW  Tworzenie aplikacji wewnątrzfirmowych jako część  pakietu Google Apps* *  Skalowalne aplikacje internetowe *  ­ po okresie testowym
  • 6. Wady GAE ● Brak relacyjnej bazy danych (złączeń, grupowania) ● Komunikacja ze światem zewnętrznym tylko przez  dostarczone API ● Zamknięte środowisko wykonawcze ● Ograniczenia rozmiarów danych ● Uzależnienie się od rozwiązań jednego dostawcy ● Brak długo działających procesów ● Odmienna architektura trudna do zaakceptowania  dla dużych, istniejących projektów
  • 7. WebApp  GAE udostępnia bardzo prosty framework WebApp  zawierający:  obsługę żądań opartą o bibliotekę WebOb  mechanizm opisu modeli wzorowany na Django  system szablonów z Django 0.96  Dobry na start lub gdy tworzymy usługi sieciowe,  pełna swoboda  Brak wielu mechanizmów z innych frameworków,  wymyślanie koła od nowa
  • 8. Django w App Engine  Użycie Django w GAE daje dostęp do:  elastycznego mechanizmu odwzorowania adresów  systemu luźno powiązanych aplikacji  wygodnej obsługi memcache na poziomie widoków i  * szablonów  rozbudowanego systemu obsługi formularzy  wielojęzyczności na poziomie statycznym  sesji*  testów funkcjonalnych wraz z obsługą danych  testowych*  wielu aplikacji pomocniczych gotowych do użycia 
  • 9. Czego ze standardowego Django nie dostaniemy?  automatycznego panelu administracyjnego  przeglądarki danych (GAE Admin oferuje własną)  komentarzy  mechanizmu contenttypes  innych aplikacji wykorzystujących bazę danych  brak również dostępu do zewnętrznych aplikacji  Django stosujących bazę danych (np. Satchmo)
  • 10. Django w GAE bez dodatkowego wspomagania  W Google App Engine jest Django 0.96  Wymaga zastosowania nieco bardziej złożonego  pliku main.py ­ dostępny na witrynie GAE  Użycie Django 1.0 wymaga większej liczby  dodatkowych kroków:  Najlepiej umieszczenia okrojonego Django w archiwum  ZIP  Usunięcia z pamięci wczytanego Django 0.96 i  dołączenia nowszego przez zmianę ścieżek importu
  • 11. Można prościej!  Istnieją projekty wspomagające współpracę Django  i GAE, z czego najciekawsze są trzy:  http://code.google.com/p/django­gae­helpers  wykorzystamy go w dalszej części prezentacji  wspierany przez pracowników Google  http://code.google.com/p/app­engine­patch/  bardzo podobny do pierwszego  tworzony niezależnie  http://code.google.com/p/django­gae2django/  jeśli tworzyłeś aplikację django w GAE, dzięki temu  projektowi możesz jej użyć poza GAE, czyli w standardowym  Django z relacyjną bazą danych!
  • 12. Google App Engine Helper for Django  wykonywanie poleceń GAE za pomocą manage.py  klasa User z Django dla użytkowników z kontami Google  obsługa testów i wczytywania danych testowych  obsługa wysyłania e­maili mechanizmem Django  przekierowania błędów do modułu logging  automatycznie usunięcie django wbudowanego w GAE i  zastąpienie dostarczonym jako django.zip  obsługa sesji w BigTable i memcache  obsługa cache  gotowe pliki app.yaml i main.py
  • 13. Instalacja GAE Helpers  Pobierz kod z http://code.google.com/p/django­gae­ helpers  Po rozpakowaniu dołącz django.zip z Django 1.0  Opis przygotowań dostępny na  http://code.google.com/appengine/articles/django10_zipi mport.html  Zmodyfikuj plik app.yaml, podając własną nazwę  aplikacji  Od tego momentu masz dostęp do większości  elementów Django 1.0!
  • 14. Przykładowa aplikacja w WebApp  Pobieramy App Engine SDK:  http://code.google.com/appengine/downloads.html  Tworzymy wymagane pliki i foldery  Demo...  Testujemy lokalnie  Demo...  Przesyłamy na serwery Google
  • 15. ...i w Django GAE Helper  Wcześniejsza aplikacja napisana w Django  Demo...  Tworzenie testów i fixtures  Demo...  Aplikacja live
  • 16. Warto czy nie warto?  Dla znających Django   Django GAE Helper i  znacznie bardziej  App Engine Patch to  przyjazne środowisko jednak spory monkey   Pomimo niezgodności  patching! modeli danych    Django GAE Helper nie  uzyskujemy wiele  jest dopracowany gotowych elementów i   Przesyłanie Django 1.0  dostęp do wielu  wraz z projektem dodatkowych aplikacji  Ułatwia migrację do   Łatwiejsze wyjście z  GAE tylko częściowo GAE
  • 17. Przyszłość Django w GAE?  Raczej niezachwiana, choć na bezpośrednią obsługę  wersji 1.0 musimy jeszcze poczekać  Powstanie osobnego projektu GAEDjango?  Jest Gaengo, ale nierozwijane...  Modele zgodne z API ORM Django?  Całkiem możliwe dzięki QuerySet refactor!  Ale  nie  łudźmy  się  w  kwestii  uruchomienia  każdej  aplikacji  Django  bez  modyfikacji  modeli  ­  BigTable  to  wiele ograniczeń, potrzeba denormalizacji...  ... choć liczba zmian będzie znacznie mniejsza
  • 18. Kilka rad na zakończenie  Używaj django.zip zamiast zwykłych plików  Folder locale z django umieść poza archiwum  ...to samo dotyczy szablonów  Użyj łatki z issue 94 dla Django GAE Helper  GAE automatycznie używa gzip    Jeśli to możliwe, używaj metod z QS zamiast GQL  Jeśli możesz, nie używaj sesji, ale signed cookies  ...ewentualnie sesji w memcache, ale są mniej pewne  SDK to nie live, korzystaj z wbudowanego stagingu
  • 19. Dziękuję za uwagę! Pytania?

×