Kaja Milanowska, Django

89
Python i Django, a programowanie aplikacji webowych. Kaja Milanowska ©Wszystkie prawa zastrzeżone

Transcript of Kaja Milanowska, Django

Page 1: Kaja Milanowska, Django

Python i Django, a programowanie aplikacji webowych.

Kaja Milanowska

©Wszystkie prawa zastrzeżone

Page 2: Kaja Milanowska, 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

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.

Page 3: Kaja Milanowska, Django

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

Page 4: Kaja Milanowska, Django

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

Page 5: Kaja Milanowska, 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

Słowem wstępu

Page 6: Kaja Milanowska, 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]

1. Skryptuj!

©Wszystkie prawa zastrzeżone

Słowem wstępu

Page 7: Kaja Milanowska, 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]

1. Skryptuj!

Języki skrytpowe.

©Wszystkie prawa zastrzeżone

Słowem wstępu

Page 8: Kaja Milanowska, 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]

1. Skryptuj!

Języki skrytpowe.

Python

©Wszystkie prawa zastrzeżone

Słowem wstępu

Page 9: Kaja Milanowska, 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]

1. Skryptuj!

Języki skrytpowe.

Python

2. Wyjdź do ludzi!

©Wszystkie prawa zastrzeżone

Słowem wstępu

Page 10: Kaja Milanowska, 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]

1. Skryptuj!

Języki skrytpowe.

Python

2. Wyjdź do ludzi!

Frameworki webowe.

©Wszystkie prawa zastrzeżone

Słowem wstępu

Page 11: Kaja Milanowska, 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]

1. Skryptuj!

Języki skrytpowe.

Python

2. Wyjdź do ludzi!

Frameworki webowe.

Django

©Wszystkie prawa zastrzeżone

Słowem wstępu

Page 12: Kaja Milanowska, 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

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

Page 13: Kaja Milanowska, 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

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

Page 14: Kaja Milanowska, 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

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)

Page 15: Kaja Milanowska, Django

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

Page 16: Kaja Milanowska, Django

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.

Page 17: Kaja Milanowska, Django

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

Page 18: Kaja Milanowska, 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.

• 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

Page 19: Kaja Milanowska, 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. 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

Page 20: Kaja Milanowska, 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.

Page 21: Kaja Milanowska, 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.

Page 22: Kaja Milanowska, 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

Page 23: Kaja Milanowska, 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

Django, czyli co?

©Wszystkie prawa zastrzeżone

Page 24: Kaja Milanowska, 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

Django, czyli co?

MTV = MVC

©Wszystkie prawa zastrzeżone

Page 25: Kaja Milanowska, 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

Django, czyli co?

MTV = MVC

Pozostań DRY

©Wszystkie prawa zastrzeżone

Page 26: Kaja Milanowska, 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

Django, czyli co?

MTV = MVC

Pozostań DRY

Technicznie rzecz ujmując

©Wszystkie prawa zastrzeżone

Page 27: Kaja Milanowska, 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

Django, czyli co?

MTV = MVC

Pozostań DRY

Technicznie rzecz ujmując

W praktyce: Projekt, Aplikacja, Model

©Wszystkie prawa zastrzeżone

Page 28: Kaja Milanowska, 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

Django, czyli co?

MTV = MVC

Pozostań DRY

Technicznie rzecz ujmując

W praktyce: Projekt, Aplikacja, Model

W praktyce: Administracja

©Wszystkie prawa zastrzeżone

Page 29: Kaja Milanowska, 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

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

Page 30: Kaja Milanowska, 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

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

Page 31: Kaja Milanowska, 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

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

Page 32: Kaja Milanowska, 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

Django, czyli co?

Page 33: Kaja Milanowska, 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]

wysokopoziomowy, opensource'owy framework

©Wszystkie prawa zastrzeżone

Django, czyli co?

Page 34: Kaja Milanowska, 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]

wysokopoziomowy, opensource'owy framework

przeznaczony do tworzenia aplikacji internetowych

©Wszystkie prawa zastrzeżone

Django, czyli co?

Page 35: Kaja Milanowska, 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]

wysokopoziomowy, opensource'owy framework

przeznaczony do tworzenia aplikacji internetowych

napisany w Pythonie

©Wszystkie prawa zastrzeżone

Django, czyli co?

Page 36: Kaja Milanowska, 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]

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?

Page 37: Kaja Milanowska, 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]

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?

Page 38: Kaja Milanowska, 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]

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?

Page 39: Kaja Milanowska, 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]

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?

Page 40: Kaja Milanowska, 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]

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?

Page 41: Kaja Milanowska, 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

I jeszcze więcej charakterystyki.

Page 42: Kaja Milanowska, 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

I jeszcze więcej charakterystyki.

Automatycznie generowany i kompletny panel administracyjny,

Page 43: Kaja Milanowska, 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

I jeszcze więcej charakterystyki.

Automatycznie generowany i kompletny panel administracyjny,

Przyjazne adresy dokumentów

Page 44: Kaja Milanowska, 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

I jeszcze więcej charakterystyki.

Automatycznie generowany i kompletny panel administracyjny,

Przyjazne adresy dokumentów

Prosty lecz funkcjonalny system szablonów

Page 45: Kaja Milanowska, 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

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

Page 46: Kaja Milanowska, 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

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

Page 47: Kaja Milanowska, 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

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ść

Page 48: Kaja Milanowska, 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

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

Page 49: Kaja Milanowska, 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

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

Page 50: Kaja Milanowska, 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

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

Page 51: Kaja Milanowska, 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

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

Page 52: Kaja Milanowska, 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

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

Page 53: Kaja Milanowska, 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

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

Page 54: Kaja Milanowska, 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

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.

Page 55: Kaja Milanowska, 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]

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ń)

Page 56: Kaja Milanowska, 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

MTV = MVC

Page 57: Kaja Milanowska, 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]

MVC - Model View Cotroller - MTV - Model Template View

©Wszystkie prawa zastrzeżone

MTV = MVC

Page 58: Kaja Milanowska, 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]

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

Page 59: Kaja Milanowska, 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]

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

Page 60: Kaja Milanowska, 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]

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

Page 61: Kaja Milanowska, 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

MTV = MVC

Page 62: Kaja Milanowska, 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

Pozostań DRY

Page 63: Kaja Milanowska, 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]

Zasada DRY (ang. Don't Repeat Yourself):

©Wszystkie prawa zastrzeżone

Pozostań DRY

Page 64: Kaja Milanowska, 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]

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

Page 65: Kaja Milanowska, 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]

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

Page 66: Kaja Milanowska, 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]

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

Page 67: Kaja Milanowska, 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]

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

Page 68: Kaja Milanowska, 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]

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

Page 69: Kaja Milanowska, 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]

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

Page 70: Kaja Milanowska, 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]

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

Page 71: Kaja Milanowska, 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]

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

Page 72: Kaja Milanowska, 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

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.

}

}

Page 73: Kaja Milanowska, 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]

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

Page 74: Kaja Milanowska, Django

W praktyce: Projekt

Page 75: Kaja Milanowska, 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]

Aplikacja $ django-admin.py startapp app

my_project/ … app/ __init__.py models.py tests.py views.py

©Wszystkie prawa zastrzeżone

W praktyce: Aplikacja

Page 76: Kaja Milanowska, 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]

Aplikacja $ django-admin.py startapp app

my_project/ … app/ __init__.py models.py tests.py views.py

©Wszystkie prawa zastrzeżone

W praktyce: Aplikacja

Page 77: Kaja Milanowska, 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]

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

Page 78: Kaja Milanowska, 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]

Panel administracyjny

©Wszystkie prawa zastrzeżone

W praktyce: Administracja

Page 79: Kaja Milanowska, 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]

Panel administracyjny

©Wszystkie prawa zastrzeżone

W praktyce: Administracja

Page 80: Kaja Milanowska, 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]

Widoki my_project/ … app/ __init__.py models.py tests.py views.py admin.py

©Wszystkie prawa zastrzeżone

W praktyce: Widoki na szablony

Page 81: Kaja Milanowska, 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

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), )

Page 82: Kaja Milanowska, 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

Ć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), )

Page 83: Kaja Milanowska, 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]

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

Page 84: Kaja Milanowska, 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]

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'),

)

Page 85: Kaja Milanowska, 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

W praktyce: Wynik

http://127.0.0.1:8000/reagents/

Page 86: Kaja Milanowska, 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

Django-powered

http://www.mozilla.org

Page 87: Kaja Milanowska, 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

Django-powered

http://instagram.com

Page 88: Kaja Milanowska, 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

Django-powered

http://pinterest.com

Page 89: Kaja Milanowska, Django

Dziękuję za uwagę