Python i Django, a programowanie aplikacji webowych.
Kaja Milanowska
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Chwilka na autoreklamę
Sp. z o. o.
– Bioinformatics for Science
VitaInSilica to jedna z nielicznych w
Polsce firm skupiających specjalistów z
bioinformatyki, biologii molekularnej,
biotechnologii i IT.
Nasz zespół
Dr Joanna Kasprzak
Dr Anna Czerwoniec
Dr Tomasz Puton
Kaja Milanowska
Anna Philips
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Konsultacje Naukowe w
Zakresie Bioinformatyki
• Systemy bazodanowe
• Zautomatyzowany
przepływ danych
• Zarządzanie danymi w
laboratorium
• Programy i skrypty
wspomagające
analizy biologiczne i
biomedyczne
• Bioinformatyka
strukturalna
• Modelowanie
molekularne
• Analizy sekwencji
biologicznych
• Biostatystyka i
filogenetyka
Rozwój
Oprogramowania
Bioinformatycznego
Dobra Szkoła
Bioinformatyki
• Różne zagadnienia
bioinformatyczne
• Zastosowanie narzędzi
bioinformatycznych
• Języki programowania
• Biostatystyka
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Czym się zajmujemy
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Słowem wstępu
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
1. Skryptuj!
©Wszystkie prawa zastrzeżone
Słowem wstępu
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
1. Skryptuj!
Języki skrytpowe.
©Wszystkie prawa zastrzeżone
Słowem wstępu
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
1. Skryptuj!
Języki skrytpowe.
Python
©Wszystkie prawa zastrzeżone
Słowem wstępu
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
1. Skryptuj!
Języki skrytpowe.
Python
2. Wyjdź do ludzi!
©Wszystkie prawa zastrzeżone
Słowem wstępu
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
1. Skryptuj!
Języki skrytpowe.
Python
2. Wyjdź do ludzi!
Frameworki webowe.
©Wszystkie prawa zastrzeżone
Słowem wstępu
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
1. Skryptuj!
Języki skrytpowe.
Python
2. Wyjdź do ludzi!
Frameworki webowe.
Django
©Wszystkie prawa zastrzeżone
Słowem wstępu
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Skryptuj!
Języki skryptowe.
• Języki programowania służące do kontrolowania danej aplikacji
• Interpretowane - zaprojektowane z myślą o interakcji z użytkownikiem.
• Skrypty powłoki systemów uniksowych oraz narzędzi administracyjnych
• Osadzane w różnych programach - zapewniają możliwość
zautomatyzowania powtarzających się czynności. (pakiet Microsoft
Office wyposażony jest w osadzony interpreter języka Visual Basic for
Applications (VBA)).
• Swoje języki skryptowe mają też inne profesjonalne narzędzia edycyjne,
jak AutoCAD czy 3D Studio Max
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Skryptuj!
Języki skryptowe.
Niektóre z języków określanych jako skryptowe:
• Python
• Awk
• bash
• JavaScript
• Perl
• PHP
• Ruby
• Tcl
• Interpretery języków skryptowych są wykorzystywane przez serwery
WWW do serwowania dynamicznych stron internetowych (np.
przez interfejs CGI lub dodatkowe funkcjonalności serwera Apache) -
m.in. PHP, Perl, Python i Ruby
• Są też osadzane w grach komputerowych – sterowanie przebiegiem
gry – fabułą, dialogami, zachowaniem wirtualnych postaci, a czasem
nawet do sterowania działaniem całego interfejsu graficznego
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Skryptuj!
Języki skryptowe. Python.
• Dwie główne wersje standardowej (C) implementacji:
• 2.x (najbardziej popularna)
• 3.x
• Kod czyta / piszę się łatwo i przyjemnie
• Problem z kompilacją z głowy!
• Automatyczna dealokacja pamięci
• Rozbudowana dokumentacja!
• Dostępność wielu bibliotek i rozszerzeń
• Duża i aktywna społeczność (http://python.org)
Ulubiony przykład!
$ ipython
>>> print 'Hello World!'
Hello World!
>>> print('Witaj świecie!')
Witaj świecie!
Skryptuj!
Języki skryptowe. Python.
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Prosta klasa:
class Pet(object):
””” ”””
def __init__(self, name, species):
self.name = name
self.species = species
def getName(self):
return self.name
def getSpecies(self):
return self.species
def __str__(self):
return "%s is a %s." % (self.name, self.species)
parrot = Pet(’Polly’, ’bird’)
print parrot
Polly is a bird.
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Skryptuj!
Języki skryptowe. Python.
Python.org – oficjalna strona
Python Programming: An Introduction To
Computer Science (2nd edition) – J. Zelle
Python Programming – M. Lutz
Python Essential Reference – D. Beazley
Konferencje:
EuroPython – http://europython.org/
PyCon UK – http://www.pyconuk.org/
RuPy – http://rupy.eu/
Literatura
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Wyjdź do ludzi!
Frameworki webowe.
• wsparcie rozwoju dynamicznych stron, aplikacji internetowych i
serwisów
• w większości oparte o model MVC (model-view-controller)
• Push-based = „action-based” – „pchają” dane do warstwy widoku, by
wygenerować wyniki: Django, Ruby on Rails, Symfony
• Pull-based = „composed-based” – zaczynają od wartswy widoku, która
„ściąga” wyniki od różnych kontrolerów: Stripes, Lift, Tapestry
• Three Tier Organisation – 3 fizyczne warstwy: klient, aplikacja i baza
danych ≠ MVC
• CMS = Content Management Systems: Joomla, Drupal
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Wyjdź do ludzi!
Frameworki webowe. Cechy.
• template system – statyczny HTML + część dynamiczna (kod
generujący HTML) – może być oparta na kodzie bądź na znacznikach
zawartych w HTMLu
• ograniczenie ilości kodu – dane do wypełnienia stron mogą pochodzić
z bazy danych
• język znaczników – niektóre poza zmiennymi dostarczają także proste
operacje logiczne
• niektóre frameworki dostarczają narzędzi do autentykacji i autoryzacji,
nakładki na bazy danych czy narzędzia do tworzenia i zarządzania
serwisami
• mapowanie URL= przyjazne adresy
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Wyjdź do ludzi!
Frameworki webowe. Django.
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Wyjdź do ludzi!
Frameworki webowe. Django.
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
MTV = MVC
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
MTV = MVC
Pozostań DRY
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
MTV = MVC
Pozostań DRY
Technicznie rzecz ujmując
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
MTV = MVC
Pozostań DRY
Technicznie rzecz ujmując
W praktyce: Projekt, Aplikacja, Model
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
MTV = MVC
Pozostań DRY
Technicznie rzecz ujmując
W praktyce: Projekt, Aplikacja, Model
W praktyce: Administracja
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
MTV = MVC
Pozostań DRY
Technicznie rzecz ujmując
W praktyce: Projekt, Aplikacja, Model
W praktyce: Administracja
W praktyce: Widoki na szablony
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
MTV = MVC
Pozostań DRY
Technicznie rzecz ujmując
W praktyce: Projekt, Aplikacja, Model
W praktyce: Administracja
W praktyce: Widoki na szablony
W praktyce: Adresy stron
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Tajniki Django
Django, czyli co?
MTV = MVC
Pozostań DRY
Technicznie rzecz ujmując
W praktyce: Projekt, Aplikacja, Model
W praktyce: Administracja
W praktyce: Widoki na szablony
W praktyce: Adresy stron
Django-powered
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
wysokopoziomowy, opensource'owy framework
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
wysokopoziomowy, opensource'owy framework
przeznaczony do tworzenia aplikacji internetowych
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
wysokopoziomowy, opensource'owy framework
przeznaczony do tworzenia aplikacji internetowych
napisany w Pythonie
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
wysokopoziomowy, opensource'owy framework
przeznaczony do tworzenia aplikacji internetowych
napisany w Pythonie
stworzony w 2003 przez grupę programistów związanych z Lawrence Journal-World
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
wysokopoziomowy, opensource'owy framework
przeznaczony do tworzenia aplikacji internetowych
napisany w Pythonie
stworzony w 2003 przez grupę programistów związanych z Lawrence Journal-World
w 2005 roku wydany na licencji BSD
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
wysokopoziomowy, opensource'owy framework
przeznaczony do tworzenia aplikacji internetowych
napisany w Pythonie
stworzony w 2003 przez grupę programistów związanych z Lawrence Journal-World
w 2005 roku wydany na licencji BSD
opiera się na wzorcu projektowym podobnym do MVC nazywanym MVT (Model-View-Template)
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
wysokopoziomowy, opensource'owy framework
przeznaczony do tworzenia aplikacji internetowych
napisany w Pythonie
stworzony w 2003 przez grupę programistów związanych z Lawrence Journal-World
w 2005 roku wydany na licencji BSD
opiera się na wzorcu projektowym podobnym do MVC nazywanym MVT (Model-View-Template)
nazwa od imienia gitarzysty Django Reinhardta
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
wysokopoziomowy, opensource'owy framework
przeznaczony do tworzenia aplikacji internetowych
napisany w Pythonie
stworzony w 2003 przez grupę programistów związanych z Lawrence Journal-World
w 2005 roku wydany na licencji BSD
opiera się na wzorcu projektowym podobnym do MVC nazywanym MVT (Model-View-Template)
nazwa od imienia gitarzysty Django Reinhardta
©Wszystkie prawa zastrzeżone
Django, czyli co?
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Automatycznie generowany i kompletny panel administracyjny,
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Automatycznie generowany i kompletny panel administracyjny,
Przyjazne adresy dokumentów
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Automatycznie generowany i kompletny panel administracyjny,
Przyjazne adresy dokumentów
Prosty lecz funkcjonalny system szablonów
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Automatycznie generowany i kompletny panel administracyjny,
Przyjazne adresy dokumentów
Prosty lecz funkcjonalny system szablonów
Oddzielenie logiki aplikacji (widok) logiki biznesowej (model) wyglądu (szablony) oraz baz danych
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Automatycznie generowany i kompletny panel administracyjny,
Przyjazne adresy dokumentów
Prosty lecz funkcjonalny system szablonów
Oddzielenie logiki aplikacji (widok) logiki biznesowej (model) wyglądu (szablony) oraz baz danych
Wsparcie dla wielojęzycznych aplikacji
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Automatycznie generowany i kompletny panel administracyjny,
Przyjazne adresy dokumentów
Prosty lecz funkcjonalny system szablonów
Oddzielenie logiki aplikacji (widok) logiki biznesowej (model) wyglądu (szablony) oraz baz danych
Wsparcie dla wielojęzycznych aplikacji
Bardzo duża skalowalność i wydajność
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Przyjazne adresy dokumentów
Prosty lecz funkcjonalny system szablonów
Oddzielenie logiki aplikacji (widok) logiki biznesowej (model) wyglądu (szablony) oraz baz danych
Wsparcie dla wielojęzycznych aplikacji
Bardzo duża skalowalność i wydajność
Wydajne systemy cache'owania, obsługa Memcached
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Własny, prosty serwer do testowania aplikacji
Prosty lecz funkcjonalny system szablonów
Oddzielenie logiki aplikacji (widok) logiki biznesowej (model) wyglądu (szablony) oraz baz danych
Wsparcie dla wielojęzycznych aplikacji
Bardzo duża skalowalność i wydajność
Wydajne systemy cache'owania, obsługa Memcached
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Własny, prosty serwer do testowania aplikacji
Współpraca z Apache poprzez WSGI (domyślnie) i mod_python oraz z innymi serwerami
Oddzielenie logiki aplikacji (widok) logiki biznesowej (model) wyglądu (szablony) oraz baz danych
Wsparcie dla wielojęzycznych aplikacji
Bardzo duża skalowalność i wydajność
Wydajne systemy cache'owania, obsługa Memcached
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Własny, prosty serwer do testowania aplikacji
Współpraca z Apache poprzez WSGI (domyślnie) i mod python oraz z innymi serwerami
DRY czyli zasada „nie powtarzaj się” w odniesieniu do tworzenia aplikacji
Wsparcie dla wielojęzycznych aplikacji
Bardzo duża skalowalność i wydajność
Wydajne systemy cache'owania, obsługa Memcached
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Własny, prosty serwer do testowania aplikacji
Współpraca z Apache poprzez WSGI (domyślnie) i mod python oraz z innymi serwerami
DRY czyli zasada „nie powtarzaj się” w odniesieniu do tworzenia aplikacji
Posiada ORM wysokiego poziomu pozwalający na łatwe i bezpieczne operowania na bazach danych bez użycia SQL
Bardzo duża skalowalność i wydajność
Wydajne systemy cache'owania, obsługa Memcached
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Własny, prosty serwer do testowania aplikacji
Współpraca z Apache poprzez WSGI (domyślnie) i mod python oraz z innymi serwerami
DRY czyli zasada „nie powtarzaj się” w odniesieniu do tworzenia aplikacji
Posiada ORM wysokiego poziomu pozwalający na łatwe i bezpieczne operowania na bazach danych bez użycia SQL
Obsługuje następujące bazy danych: PostgreSQL, MySQL, SQLite oraz Oracle
Wydajne systemy cache'owania, obsługa Memcached
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
I jeszcze więcej charakterystyki.
Własny, prosty serwer do testowania aplikacji
Współpraca z Apache poprzez WSGI (domyślnie) i mod python oraz z innymi serwerami
DRY czyli zasada „nie powtarzaj się” w odniesieniu do tworzenia aplikacji
Posiada ORM wysokiego poziomu pozwalający na łatwe i bezpieczne operowania na bazach danych bez użycia SQL
Obsługuje następujące bazy danych: PostgreSQL, MySQL, SQLite oraz Oracle
djangoproject.com.
©Wszystkie prawa zastrzeżone
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Literatura
DjangoProject – Oficjalna strona Django
DjangoBook – Darmowa książka o Django
Django.pl – Polska społeczność Django
Python Web Development with Django
– Forcier, Bissex, Chun
DjangoCon – 2 razy w roku (raz w
Europie – maj/czerwiec, raz w Stanach –
wrzesień)
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
MTV = MVC
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
MVC - Model View Cotroller - MTV - Model Template View
©Wszystkie prawa zastrzeżone
MTV = MVC
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
MVC - Model View Cotroller - MTV - Model Template View Model = Model – klasa Python’a definiująca tabele w bazie danych (pewna reprezentacja problemu bądź logiki aplikacji)
©Wszystkie prawa zastrzeżone
MTV = MVC
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
MVC - Model View Cotroller - MTV - Model Template View Model = Model – klasa Pythona definiująca tabele w bazie danych (pewna reprezentacja problemu bądź logiki aplikacji) Template = View – Wzorzec, czyli informacja jak wyświetlić dane na stronie (HTML + znaczniki) (opisuje, jak wyświetlić pewną część modelu w ramach interfejsu użytkownika)
©Wszystkie prawa zastrzeżone
MTV = MVC
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
MVC - Model View Cotroller - MTV - Model Template View Model = Model – klasa Pythona definiująca tabele w bazie danych (pewna reprezentacja problemu bądź logiki aplikacji) Template = View – Wzorzec, czyli informacja jak wyświetlić dane na stronie (HTML + znaczniki) (opisuje, jak wyświetlić pewną część modelu w ramach interfejsu użytkownika) Views = Controller – funkcje Python’owe operujące na danych (przyjmuje dane wejściowe od użytkownika i reaguje na jego poczynania, zarządzając aktualizacje modelu oraz odświeżenie widoków)
©Wszystkie prawa zastrzeżone
MTV = MVC
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
MTV = MVC
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Pozostań DRY
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Zasada DRY (ang. Don't Repeat Yourself):
©Wszystkie prawa zastrzeżone
Pozostań DRY
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Zasada DRY (ang. Don't Repeat Yourself):
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
©Wszystkie prawa zastrzeżone
Pozostań DRY
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Zasada DRY (ang. Don't Repeat Yourself):
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
vs.
©Wszystkie prawa zastrzeżone
Pozostań DRY
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Zasada DRY (ang. Don't Repeat Yourself):
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
vs.
WET
©Wszystkie prawa zastrzeżone
Pozostań DRY
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Zasada DRY (ang. Don't Repeat Yourself):
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
vs.
WET We Edit Terribly, Tumultuously, Tempestuously, Tenaciously, Too much, Timidly, Tortuously, Terrifiedly...
©Wszystkie prawa zastrzeżone
Pozostań DRY
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Zasada DRY (ang. Don't Repeat Yourself):
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
vs.
WET We Edit Terribly, Tumultuously, Tempestuously, Tenaciously, Too much, Timidly, Tortuously, Terrifiedly...
"We Enjoy Typing"
©Wszystkie prawa zastrzeżone
Pozostań DRY
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Instalacja i konfiguracja Django. → djangoproject.com Współpraca z Apache za pomocą mod_WSGI • mod_wsgi – moduł stworzony przez Grahama Dumpletona – dostarcza interfesju WSGI do obsługi aplikacji webowych opartych na Pythonie 2.3+ pod Apache
• Wspiera Pythona 2.6+ i 3.1
• Alternatywa dla mod_python, CGI, FastCGI
©Wszystkie prawa zastrzeżone
Technicznie
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Projekt – „kontener” dla zbioru aplikacji, umożliwiający ich współdziałanie $ django-admin startproject my_project
my_project/ manage.py my_project/ __init__.py settings.py urls.py wsgi.py
©Wszystkie prawa zastrzeżone
W praktyce: Projekt
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Projekt – „kontener” dla zbioru aplikacji, umożliwiający ich współdziałanie $ django-admin startproject my_project
my_project/ manage.py my_project/ __init__.py settings.py urls.py wsgi.py
©Wszystkie prawa zastrzeżone
W praktyce: Projekt
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
W praktyce: Projekt
# Django settings for my_project.
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
('Kaja Milanowska', '[email protected]'),
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql',
'sqlite3' or 'oracle'.
'NAME': 'microtoolbox_db', # Or path to database file if using
sqlite3.
'USER': 'liriela', # Not used with sqlite3.
'PASSWORD': 'micro1234db', # Not used with sqlite3.
'HOST': '150.254.120.209', # Set to empty string for localhost. Not
used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not
used with sqlite3.
}
}
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Serwer deweloperski $ python manage.py runserver
Validating models...
0 errors found
Django version 1.4.1, using settings
'my_blog.settings'
Development server is running at
http://127.0.0.1:8000/
Quit the server with CONTROL-C.
©Wszystkie prawa zastrzeżone
W praktyce: Projekt
W praktyce: Projekt
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Aplikacja $ django-admin.py startapp app
my_project/ … app/ __init__.py models.py tests.py views.py
©Wszystkie prawa zastrzeżone
W praktyce: Aplikacja
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Aplikacja $ django-admin.py startapp app
my_project/ … app/ __init__.py models.py tests.py views.py
©Wszystkie prawa zastrzeżone
W praktyce: Aplikacja
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Model # -*- coding: utf-8 -*-
__author__ = 'Kaja Milanowska [email protected]'
from django.db import models
class Reagent(models.Model):
name = models.CharField(max_length=60)
description = models.TextField()
created = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.name
Baza danych
$ python manage.py syncdb
©Wszystkie prawa zastrzeżone
W praktyce: Model
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Panel administracyjny
©Wszystkie prawa zastrzeżone
W praktyce: Administracja
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Panel administracyjny
©Wszystkie prawa zastrzeżone
W praktyce: Administracja
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
Widoki my_project/ … app/ __init__.py models.py tests.py views.py admin.py
©Wszystkie prawa zastrzeżone
W praktyce: Widoki na szablony
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
W praktyce: Widoki na szablony
# -*- coding: utf-8 -*- __author__ = 'Kaja Milanowska [email protected]' from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext from django.contrib.auth.decorators import login_required from reagents.models import Reagent @login_required def reagents_list(request): """ shows list of reagents """ all_reagents = Reagent.objects.all().order_by('name') return render_to_response( 'reagents/reagents_list.html', {'all_reagents' : all_reagents,}, context_instance=RequestContext(request), )
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Ćwiczenia: Widoki na szablony
# -*- coding: utf-8 -*- __author__ = 'Kaja Milanowska [email protected]' from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext from django.contrib.auth.decorators import login_required from reagents.models import Reagent @login_required def reagents_list(request): """ shows list of reagents """ all_reagents = Reagent.objects.all().order_by('name') return render_to_response( 'reagents/reagents_list.html', {'all_reagents' : all_reagents,}, context_instance=RequestContext(request), )
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
my_project/ … manage.py urls.py app/ __init__.py models.py tests.py views.py admin.py templates/ ©Wszystkie prawa zastrzeżone
W praktyce: Adresy stron
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
my_project/ … manage.py settings.py urls.py app/ __init__.py models.py tests.py views.py admin.py ©Wszystkie prawa zastrzeżone
W praktyce: Adresy stron
# -*- coding: utf-8 -*-
__author__ = 'Kaja Milanowska [email protected]'
from django.conf.urls import patterns, url
urlpatterns = patterns('reagents.views',
url(r'^reagents/', 'reagents_list', name='reagents_list'),
)
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
W praktyce: Wynik
http://127.0.0.1:8000/reagents/
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Django-powered
http://www.mozilla.org
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Django-powered
http://instagram.com
VitaInSilica Sp. z o. o., ul. Krzemowa 1, Złotniki, 62-002 Suchy Las
NIP: 9721237412 REGON: 301973876 KRS: 0000415392
www.vitainsilica.pl [email protected]
©Wszystkie prawa zastrzeżone
Django-powered
http://pinterest.com
Dziękuję za uwagę