Laboratorium Kierunki Rozwoju oprogramowania REST, Django

Podobne dokumenty
Zaawansowany kurs języka Python

Modele. Najcz. Metoda unicode definiuje sposób wyświetlania obiektu w postaci tekstowej. BooleanField - pole logiczne, True/False

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 6 Tworzenie bloga w Zend Framework

Kurs rozszerzony języka Python

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Laboratorium 2. def detail(request, question_id): return HttpResponse("Patrzysz na pytanie %s." % question_id)

Quiz Aplikacja internetowa

Backend Administratora

CMS Admin instrukcja administratora

Chatter Aplikacja internetowa

Platforma e-learningowa

Dokumentacja. Realizacja w portalu kalkulatora simple. (dane wprowadzane z klawiatury).

APLIKACJA SHAREPOINT

Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android.

Podstawy technologii WWW

Shell Card Online usługa fakturowania elektronicznego Podręcznik użytkownika

Laboratorium 1 Wprowadzenie do PHP

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Aplikacje WWW - laboratorium

Zrąb webowy dla perfekcjonistów z terminami. autor: Kamil Adamczyk

1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki za pomocą otrzymanych danych.

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

Programowanie w Ruby

Integracja z Facebook. Wersja 7.2.4

Instrukcja użytkownika

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji src/ - folder zawiera cały kod PHP aplikacji

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

Instrukcja instalacji oprogramowania dla środowiska Linux

Palety by CTI. Instrukcja

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Windows

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Centrum Informatyki "ZETO" S.A. w Białymstoku. Wysyłanie danych o licencjach i zezwoleniach do CEIDG w systemie ProcEnt Licencje

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Instrukcja instalowania aplikacji TNS mobistat. Tablet. Help Desk

MVC w praktyce tworzymy system artykułów. cz. 2

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

,Aplikacja Okazje SMS

Wprowadzenie do Doctrine ORM

GENERATOR OFERTY PDF DOKUMENTACJA UŻYTKOWA 1/20

Nowe funkcjonalności w wersji Automatyczne uzupełnianie zakładek w dokumentach WORD przy podpisywaniu

Zakładanie konta w serwisie Canva i opcje interfejsu

Operacje. instrukcja obsługi wersja 2.9.2

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Podstawy technologii WWW

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Aplikacje WWW - laboratorium

PWI Instrukcja użytkownika

Aplikacje internetowe laboratorium XML, DTD, XSL

Informatyka I : Tworzenie projektu

Jak posługiwać się edytorem treści

Podręcznik Google. Cloud Print. Informacje o usłudze Google Cloud Print. Drukowanie przy użyciu usługi Google. Cloud Print.

Zadanie programistyczne nr 3 z Sieci komputerowych

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla System Mac OS

Books. by HansaWorld. Przewodnik instalacji. wersji 6.2

SERWER AKTUALIZACJI UpServ

MODUŁ INTEGRUJĄCY ELEKTRONICZNEGO NADAWCĘ Z WF-MAG SPIS TREŚCI

Aplikacje WWW - laboratorium

Modele danych walidacja widoki zorientowane na model

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Serwer WWW na przykªadzie Django cz.1

Leszek Stasiak Zastosowanie technologii LINQ w

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

System kontroli dostępu ACCO NET Instrukcja instalacji

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Dokumentacja modułu OpenCart

Instrukcja obsługi dziennika elektronicznego dla trenerów uczestniczących. w ogólnopolskim projekcie MultiSport. Luty 2015 r.

Testowanie aplikacji. Kurs języka Ruby

Instalacja systemu zarządzania treścią (CMS): Joomla

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

T: Aktualizowanie systemów operacyjnych.

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

Baza danych i ORM mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Marketing Automation:

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

Instrukcja instalacji

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Cover sheet. WinCC (TIA Portal) FAQ Listopad 2012

Przy wykonywaniu rozliczeń obowiązują pewne zasady, do których nie zastosowanie się będzie skutkowało odrzuceniem raportów ze strony NFZ:

Kurs rozszerzony języka Python

Aplikacje internetowe

INSTRUKCJA INSTALACJI MODUŁU

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Instrukcja laboratoryjna

Pomoc dla systemu WordPress

Udostępnianie, publikowanie i zapisywanie aplikacji do pliku

Instrukcja obsługi aplikacji i platformy Geodriller:

MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej

Kurs rozszerzony języka Python

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

SERWER AKTUALIZACJI UpServ

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Transkrypt:

Laboratorium Kierunki Rozwoju oprogramowania REST, Django 1. Instalacja oprogramowania: sudo apt-add-repository universe && sudo apt-get upgrade sudo apt-get install python-pip -y sudo pip2 install django==1.9.2 django-debug-toolbar sudo pip2 install django-extensions werkzeug sudo pip2 install django-werkzeug-debugger-runserver 2. W systemie powinno być dostępne polecenie django-admin. Wykonaj je i zobacz jakie opcje są dostępne. Następnie stwórz nowy projekt i dodaj do niego nową aplikację: django-admin startproject <project> && cd <project> django-admin startapp <app> 3. Aby uruchomić aplikację wykonaj polecenie:./manage.py runserver Przeanalizuj otrzymane komunikaty i zastosuj się do nich. 4. Otwórz adres http://localhost:8000. Sprawdź co dzieje się po stronie serwera 5. Gratulację! Właśnie stworzyłeś swój pierwszy działający projekt. Zajmij się edycją ustawień projektu. Plik znajduje się w folderze <project>/<project>. Dodaj nazwę swojej aplikacji do tablicy INSTALLED_APPS. Ponadto dodaj aplikację debug_toolbar oraz werkzeug_debugger_runserver (ostatni wpis musi znajdować się przed django.contrib.staticfiles ). UWAGA nazwy wpisywane to

tablicy INSTALLED_APPS mają być wpisywane bez przedrostków takich jak django.contrib. Zmień nazwę tablicy MIDDLEWARE na MIDDLEWARE_CLASSES. Uruchom serwer ponownie i napraw ewentualne problemy. Na końcu dodaj wpis do tabeli INTERNAL_IPS z adresami, którym będzie wyświetlał się panel do debugowania (127.0.0.1). 6. Na końcu pliku urls.py dodaj poniższy kod: from django.conf import settings from django.conf.urls import include, url if settings.debug: import debug_toolbar urlpatterns += [ url(r'^ debug /', include(debug_toolbar.urls)), ] 7. Przejdź pod adres http://localhost:8000/ <app>. W związku z tym, że nie dodaliśmy jeszcze nic ciekawego, jedyne do czego mamy dostęp to panel administratora. Najpierw jednak należy wygenerować konto administratora:./manage.py createsuperuser Jeżeli pojawi się komunikat o braku tabeli w bazie danych wykonaj polecenia./manage.py makemigrations./manage.py migrate Dostęp do panelu administratora: http://localhost:8000/admin 8. Nie ma tam nic poza informacjami o grupach i użytkownikach. Możesz zobaczyć jak wygląda zarządzanie nimi oraz uprawnieniami.

9. Stwórzmy dwa modele reprezentujące wpisy na blogu, oraz kategorie do jakich je przyporządkujemy. Otwórz plik models.py w folderze z aplikacją i dodaj dwie klasy o nazwach Blog i Category: class Blog (models.model): title = models.charfield(max_length=100, unique=true) def unicode (self): return '%s' % self.title Funkcja unicode będzie odpowiadała za zwracanie reprezentacji obiektu jeżeli nie odwołamy się bezpośrednio do któregoś z pól (przydatne w listach i czasami w widokach) Aby dodać więcej pól do tabeli, zdefiniuj nowe pola w klasie model. Dostępne pola mogą mieć klasy takie jak TextField, ForeignKey, DateField. Dokumentacja tych typów jest dostępna na stronie https://docs.djangoproject.com/en/1.10/ref/models/fields/ Model Blog powinien zawierać 4 pola (tytuł, tekst, relacje do tablicy categories, oraz datę publikacji). Model Category powinien zawierać co najmniej jedno pole (tytuł). 10.Modele nie będą jednak działały dopóki nie wygenerujemy odpowiadającym im tabel w bazie danych./manage.py makemigrations./manage.py migrate UWAGA przy każdej zmianie table konieczne jest powtórzenie tych poleceń 11. Teraz aby modele były dostępne w panelu administratora trzeba je zarejestrować w pliku admin.py : from <app>.models import Blog, Category

admin.site.register(blog) Widok modelu może być customizowany dzięki zarejestrowaniu ich z dodatkowym argumentem: class BlogAdmin (admin.modeladmin): search_fields = ['title'] list_display = ['title', 'posted'] list_filter = ['posted'] admin.site.register(blog, BlogAdmin) UWAGA Raz zarejestrowany model nie może być zarejestrowany jeszcze raz. Jeżeli chcesz użyć powyższej metody, usuń wpis z poprzedniego akapitu. Pamiętaj także, że powyższa funkcja pozwala na użycie pewnych pól z modeli, a Twoje pola mogą mieć inne nazwy. 12.Dodaj kilka wpisów i kategorii używając panelu administracyjnego. 13. Teraz zajmiemy się logiką aplikacji pobierającą dane z modelu i przekazującą je do Templatów. W pliku views.py dodaj metodę: from django.shortcuts import render_to_response from django.shortcuts import get_object_or_404 def index (request): return render_to_response('index.html', { 'categories': Category.objects.all(), 'posts': Blog.objects.all()[:8]}) 14. Aplikacja musi wiedzieć do jakiej metody przekierować rządanie przychodzące. W tym celu musimy dodać w pliku urls.py w tablicy urlpatterns dodatkowy wpis: url (r'^ blogapp /', ' blogapp.views.index ', name= mainview ), UWAGA: Dodaj ten wpis w tablicy a nie w instrukcji warunkowej poniżej tablicy

15.Teraz możemy wyświetlić stronę główną naszej aplikacji, ale okazuję się, że brakuje nam pliku template do wyświetlenia. Umieść plik index.html w folderze templates w katalogu głównym aplikacji. {% for post in posts %} {{ post }} <br/> {% endfor %} Sprawdź działanie strony głównej. UWAGA: Jeżeli zmieniłeś położenie katalogu templates, musisz ręcznie zrestartować serwer 16.Dodaj w pliku views.py kolejne akcje odpowiadające za wyświetlanie wpisu i kategorii o zadanym id (powinna ona wyświetlać listę postów do niej przypisanych). Listy powinny być klikalne - przenosić na strony prezentujące pojedynczy wpis, albo wpisy z wybranej kategorii. Dodaj do strony dowolny arkusz ze stylami, tak aby była ona bardziej reprezentatywna. Aby odfiltrować wpisy po danym kryterium: Blog.objects.filter( category = categoryobj ) Gdzie categoryobj jest wcześniej pobranym obiektem zawierającym kategorię. Jeżeli chcesz aby w przypadku braku obiektu o zadanym id zamiast błędów pojawiła się strona ze statusem 404: categoryobj = get_object_or_404 (Blog, id=categoryid),

Jeżeli funkcja ma pobierać dodatkowy parametr przekazywany w URL, należy dodać dodatkowy argument do jej definicji, a ponadto zmienić wpis w pliku urls.py (wyrażenia regularne): url (r'^ blogapp/view/([0-9]+) ', ' blogapp.views.view_post ', name= blogview ), Każdy argument zawarty w nawiasach okrągłych zostanie przekazany do funkcji w pliku views.py do odpowiedniej funkcji Aby lista kategorii lub wpisów była klikalna w momencie tworzenia pliku z widokiem można posłużyć się funkcją url : {% < nazwa_funkcji_z_pliku_views.py > arg1 arg2 %} Zauważ że pliki zawierające templaty mają wiele elementów powtarzających się. Możemy stworzyć plik bazowy (zawierający sekcję head, title, nagłówki i stopkę) i zaznaczyć w nim miejsca gdzie będą wstawiane elementy innych templatów. Stwórz plik base.html który zawierać będzie strukturę pliku html. (<html><head>... </html>). Następnie miejsca uzupełniane przez templaty go rozszerzające zadeklaruj w poniższy sposób: {% block <nazwa bloku>%} {% endblock %} Teraz możesz stworzyć templaty rozszerzające ten bazowy. Wystarczy że zaczniesz je od linii: {% extends 'base.html' %} A miejsca do uzupełnienia oznaczysz: {% block <nazwa bloku>%} Zawartość do wyświetlenia {% endblock %}

Pamiętaj aby pomiędzy nimi znalazła się jakaś zawartość. 17. Po zakończeniu zadań spakuj cały projekt do pliku zip i prześlij go prowadzącemu