Python Django

Czym jest Django?

Za wikipedią:

Django – wolny i otwarty framework przeznaczony do tworzenia aplikacji internetowych, napisany w Pythonie. Powstał pod koniec 2003 roku jako ewolucyjne rozwinięcie aplikacji internetowych, tworzonych przez grupę programistów związanych z Lawrence Journal-World. W 2005 roku kod Django został wydany na licencji BSD. Nazwa frameworku pochodzi od gitarzysty Django Reinhardta.

Django realizuje wzorzec architektoniczny model-template-view (pokrewny z MVC).

Wśród dobrze znanych witryn, które używają Django, znajdują się witryny Pinterest, Instagram, Fundacji Mozilla, Public Broadcasting Service i The Washington Times.

Jak widać, dzisiejsze zajęcia przygotowane są specjalnie z myślą o osobach, które twierdzą, iż "na kognitywistyce nie ma żadnych praktycznych zajęć/rzeczy". Proszę bardzo, całe dzisiejsze zajęcia to czysta praktyka (oprócz zrozumienia zasad działania MVC), którą to praktykę, wdraża się w rzeczywistym świecie: w małych, średnich i dużych przedsiębiorstwach.


Stwórz własną stronę

Wyśmienity tutorial znajdą Państwo na Django Girls (do tego ma polską wersję językową):
https://tutorial.djangogirls.org/pl/

Jak zainstalować Python-a:
https://tutorial.djangogirls.org/pl/installation/

Polecam przejrzeć wszystkie sekcje po kolei. Dla niecierpliwych, od razu Django:
https://tutorial.djangogirls.org/pl/django/

Na zajęciach nie będziemy tworzyć nowego projektu Django od zera. Posłużymy się gotowym projektem i podstawimy tylko nasz template w HTML.
Szczegóły jak to zrobić znajdą Państwo tutaj: https://tutorial.djangogirls.org/pl/html/.

Inne tutoriale:
https://github.com/wsvincent/awesome-django#general-tutorials

Repozytoria z działającymi przykładami:
https://github.com/wsvincent/djangoforbeginners


Blog (aktualności, news feed)

Pokazuje i objaśnia prowadzący. Dla Państwa przyszłej kariery lepiej, żeby Państwo uważnie się przysłuchiwali i spróbowali odtworzyć zadanie w domu lub nawet pójść krok dalej i samodzielnie coś w nim zmienić.

Dwa źródła przyładów:

  1. Przykład bardziej wyczerpujący: https://tutorial.djangogirls.org/pl/django_models/.
  2. Przykład szybszy: https://github.com/wsvincent/djangoforbeginners/tree/master/ch5-blog-app (ten zaprezentowany zostanie na zajęciach).

Wysyłanie e-maila

Pokazuje i objaśnia prowadzący. Dla Państwa przyszłej kariery lepiej, żeby Państwo uważnie się przysłuchiwali i spróbowali odtworzyć zadanie w domu lub nawet pójść krok dalej i samodzielnie coś w nim zmienić.

Tutorial:
https://wsvincent.com/django-contact-form/

Repozytorium na GitHub-ie:
https://github.com/wsvincent/django-contact-form

Funkcja w Django:
https://docs.djangoproject.com/en/1.10/topics/email/

Dla gotowych na więcej (rzeczywiste wysłanie e-maila):
https://simpleisbetterthancomplex.com/tutorial/2017/05/27/how-to-configure-mailgun-to-send-emails-in-a-django-app.html


*Przykład z życia wzięty (use case example) — sterowanie domem inteligentnym

  • Jak zaprojektować interface domu inteligentnego?
  • Web application (np. Django Python), mobile application (Android, iOS), czy obie wersje?
  • Komunikacja pomiędzy hardware-m (czujniki, sterowniki, wentylacja, klimatyzacja), a serwerem.
  • User-centered design, testy użyteczności.

Hosting (deployment, wdrażanie) strony w django (nie wymagany na potrzeby zadania):


Zadanie na dziś (do dokończenia w domu)

  1. Stworzyć środowisko (warto zajrzeć tutaj: https://wsvincent.com/django-contact-form/ (sekcja "Initial setup") oraz tutaj: https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv#getting-started)
  2. Bazując na przykładzie https://github.com/wsvincent/djangoforbeginners/tree/master/ch3-pages-app dodać jeszcze jedną stronę i do wszystkich trzech dodać template-y (wzorce HTML)
  3. Dodać do projektu plik CSS (wskazówkę gdzie go dodać znajdą Państwo tutaj: https://tutorial.djangogirls.org/pl/css/#tw%C3%B3j-pierwszy-arkusz-css), podpiąć ten plik do każdego wzorca html, który Państwo zastosują.

Zadanie 04

Stwórz własną stronę według wytycznych powyżej. Do prowadzącego przesyłają Państwo folder ze środowiskiem "zzipowany" (najchętniej nie "zrarowany"). Prowadący wprowadzi w folderze, który Państwo wyślą następujące komendy (takie jak tutaj: https://github.com/wsvincent/djangoforbeginners/blob/master/Readme.md):

$ pipenv shell
$ pipenv install
# (ewentualnie) python manage.py migrate
$ python manage.py runserver

Jeśli po zastosowaniu tych komend strona nie zadziała, zadanie nie będzie oceniane. Warto zatem sprawdzić działanie strony samodzielnie, zanim wyśle się ją do prowadzącego.

Strona na licencji Creative Commons Attribution-ShareAlike 3.0. Autorzy: A. Czoska, M. Komosiński, B. Kowalczyk, A. Kupś, M. Lubawy