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



Podobne dokumenty
INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Języki programowania wysokiego poziomu. Ćwiczenia

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

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Instrukcja obsługi aplikacji WIFI AC. SYG01Eng-4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Języki programowania wysokiego poziomu. Blog

CREATE USER

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

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

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

KatMPBSoft - 1 -

PANEL ADMINISTRACYJNY SPRZEDAWCY SZYBKI START

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

4. Podstawowa konfiguracja

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Instrukcja konfiguracji funkcji skanowania

Wprowadzenie do Doctrine ORM

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000

Podręcznik Integracji

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

ios7 bezpieczniejszy dla dziecka

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

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

FS-Sezam SQL. Obsługa kart stałego klienta. INFOLINIA : tel. 14/ , kom. 608/ edycja instrukcji :

Języki programowania wysokiego poziomu. Forum


Sesje i logowanie. 1. Wprowadzenie

Jak przenieść bazę danych na zdalny serwer?

Instrukcja zarządzania kontami i prawami. użytkowników w systemie express V. 5

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Konfiguracja telefonu Yealink T20P

INSTRUKCJA UŻYTKOWANIA STRONY DLA PODSTAWOWEGO UŻYTKOWNIKA

Instrukcja instalacji programu lojalnościowego LOYAL BASIC 1-st. (wersja demo) bez połączenia z Subiektem GT

Zakładanie konta w serwisie

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera.

Instrukcja obsługi programu

Projektowani Systemów Inf.

Elektroniczna Skrzynka Podawcza

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:


PRODUKCJA BY CTI INSTRUKCJA INSTALACJI I KONFIGURACJI

Elektroniczny system wspomagający proces rekrutacji do żłobków

Repozytorium Cyfrowe BN

Programowanie w Sieci Internet. Python: Wątki. Kraków, 12 grudnia 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

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

Baza danych do przechowywania użytkowników

Instrukca instalacji i obsługi aplikacji CHIGO Smart Kit

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

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

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Instrukcja obsługi programu DHL EasySHip v. 5.3.x

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Win Admin Monitor Instrukcja Obsługi

Instalacja (GM) AMXBans #1.5.1/ #1.6.1 na serwerze gry/stronie WWW. Wymagania

ZMIANA HASEŁ DO KONT SIP - INSTRUKCJA

Zaawansowany kurs języka Python

Instrukcja wypełniania i rejestrowania wniosków on-line do wszystkich Akcji programu MłodzieŜ w działaniu

Wykład 5: PHP: praca z bazą danych MySQL

Internetowe bazy danych

Funkcje dodatkowe. Wersja 1.2.1

SCENARIUSZE ĆWICZEŃ DLA UŻYTKOWNIKÓW WEWNĘTRZNYCH SYSTEMU INFORMATYCZNEGO NAWIKUS

Laboratorium Kierunki Rozwoju oprogramowania REST, Django

FS-Repertorium SQL. Repertorium Tłumacza Przysięgłego. INFOLINIA : tel. 14/ , kom. 608/ edycja instrukcji :

Podręcznik Użytkownika LSI WRPO

Temat: EasyAccess 2.0 Data: 10 Października 2014 Prowadzący: Maciej Sakowicz

Kamera. Kamera sieciowa Bullet. Skrócona instrukcja obsługi wersja polska. Niniejsza skrócona instrukcja obsługi dotyczy modeli: UD.

Problemy techniczne. Jak można zmienić dane licencjobiorcy?

Elektroniczny system wspomagający proces rekrutacji do żłóbków w m. Pruszków

MS Windows Vista. Spis treści. Autor: Jacek Parzonka, InsERT

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/4.1.4/2016

Elektroniczny system wspomagający proces rekrutacji do żłobków

Dokumentacja serwisu internetowego Zespołu Szkół Technicznych w Radomiu.

Spis treści. Spis treści Wstęp Instalacja nazwa.pl Instalacja Home.pl Edycja grafiki strony logo...

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej

Rejestracja użytkownika Bentley Często zadawane pytania techniczne

Ćwiczenie: JavaScript Cookies (3x45 minut)

Elektroniczny system wspomagający proces rekrutacji do żłobków

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

SystimPlus. Dokumentacja (FAQ) dla wersji: v

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Kontrola dostępu w ASP.NET

Kamera. Kamera sieciowa Cube. Skrócona instrukcja obsługi wersja polska

11. Autoryzacja użytkowników

0.1 Logowanie do serwisu

Podręcznik użytkownika Publikujący aplikacji Wykaz2

Linksys/Cisco RT31P2, WRT54GP2. Instrukcja Konfiguracji

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Transkrypt:

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

Co dziś będziemy robić Uwierzytelnianie użytkowników, Obiekt session, Silniki baz danych, MySQL queries, Zabawa, czyli napiszemy coś sami :)

Uwierzytelnianie użytkowników, Django posiada swój panel administratora, a sposób jego obsługi został przedstawiony na poprzednich zajęciach. Polecam także obszerniejszy opis na stronie http://bogdan.students.wmi.amu.edu.pl/ education/python%20i%20django/django_3.html#chapter_1 Django umożliwia nam także logowanie się do naszej strony przez gotowy moduł. Jest to moduł logowania użytkowników, a nie administratorów. Sposób logowania jest dość przejrzyście opisany na stronie http://bogdan.students.wmi.amu.edu.pl/education/ python%20i%20django/django_3.html#chapter_3 Jednak aby się zalogować, należałoby wpierw założyć użytkownikom ich konta. Umożliwia nam to kolejny gotowy moguł rjestracji http:// bogdan.students.wmi.amu.edu.pl/education/python%20i%20django/ Django_3.html#chapter_4

Session Sesje w django są zdefiniowane w klasie django.contrib.sessions.middleware.sessionmiddleware Sesje mają podobny interfejs do słowników. Aby dodać wartość do sesji piszemy: request.session['klucz'] = 'wartosc' a aby odczytać i np. wypisać: print request.session['klucz'] Aby sprawdzić warunek z sesji: if request.session.get('klucz',wartosc)... Obiekt session jest dostępny jako pierwszy argument obiektu HttpRequest Konfiguracja sesji z poziomu settings.py: SESSION_COOKIE_AGE - ważność cookie sesji w sekundach. Domyślnie 2 tygodnie. SESSION_COOKIE_DOMAIN - domena ciasteczka. SESSION_COOKIE_NAME - nazwa ciacha dla sesji. Domyślnie sessionid. SESSION_COOKIE_SECURE - jeżeli ustawione na True ciacho będzie przesyłane tylko przez połączenia HTTPS SESSION_EXPIRE_AT_BROWSER_CLOSE - jeżeli ustawione na True sesja wygaśnie po zamknięciu przeglądarki

Silniki baz danych Aby napisać większą aplikację SQLite może być dla nas zbyt małe. Mamy więc możliwość skonfigurowania większej bazy danych. Może być to MySQL lub Postgres. Ja przedstawię konfigurację dla MySQL a DATABASES = { } 'default': { } 'ENGINE': 'django.db.backends.mysql', 'NAME': '<your_username>$<your_database_name>', 'USER': '<your_username>', 'PASSWORD': '<your_mysql_password>', 'HOST': 'mysql.server', Na stronie dev.mysql znajdziemy jeszcze inny inny silnik mysql.connector.django. Można także użyć klucza OPTIONS do skonfigurowania połączenia, transakcji, etc. Więcej info na https://docs.djangoproject.com/en/1.5/ref/settings/#std:setting-databases

MySQL queries Django daje na możliwość używania zapytań na modelach. W tym wypadku tworzymy klasę obiektu z bazy. Możemy wtedy pobrać z bazy dane i stworzyć taki obiekt, a następnie edytować jego wartości i wołając metodę save() zapisać nasz obiekt w bazie. Możemy też usunąć ten obiekt wołając delete(). Aby dodać do bazy tworzymy nowy obiekt i dodajemy go wołając add(). Dobry tutorial możecie znaleźć pod w dokumentacji django, pod adresem: https://docs.djangoproject.com/en/dev/topics/db/queries/ Możemy także tworzyć własne zapytania SQL (tak zwane raw queries). Tu również tworzymy sobie klasę obiektu reprezentującą poszczególne wpisy z tabel i wywołujemy na niej raw( [zapytanie sql] ), możemy do zapytania dodać dodatkowe argumenty params i translations. Więcj info w dokumentacji django na stronie: https://docs.djangoproject.com/en/dev/topics/db/sql/

Szablony (templates) Szablony to szybki sposób na wypełnianie stron treścią bez potrzeby powtarzania stałego kodu w nieskończoność. Templates w pythonie dają nam wygodny interface do tego zabiegu. Wystarczy ustawić katalog szablonów TEMPLATE_DIRS w settings.py i stworzyć swój własny szablon. Po zakończeniu bloku I nie powinno to być trudne. Szablon to strona html z umieszczonymi blokami w miejscach, gdzie django będzie mógł umieszczać swoją zawartość. Aby wykorzystać szablon wpisujemy najpierw {% extends template.html %}, a następnie wypełniamy zawartość odpowiednich bloków pisząc: {% block nazwabloku %}... {% endblock %} Bloki nie mogą się zagnieżdżać, a w szablonie miejsce bloku zaznaczamy dokładnie tak samo, tylko bez zawartości: {% block nazwabloku %}{% endblock %}. Możecie także wklejać kod do html a np.: {% if [warunek] %} [kod] {% endif %} Tu także znajdziecie dużo info na ten temat w dokumentacji django https://docs.djangoproject.com/en/dev/ref/templates/

NTS Napisz To Sam Napiszmy skrypt w pythonie, który będzie dawał możliwość: zarejestrowania się będzie dodawał do bazy użytkownika (wymagane login i hasło + inne dane wedle uznania), zalogowania się do systemu sprawdzi w bazie czy użytkownik istnieje w bazie danych i jeśli tak, to utworzy dla niego nową sesję pozwalając mu przeglądać zawartość serwisu, a w przeciwnym wypadku wyświetli odpowiednią informację o błędnym logowaniu i każe zalogować się ponownie. Dodatkowo, przy próbie dostania się na strony chronione (tylko dla użytkowników zalogowanych) będzie kierować do strony logowania. Serwis powinien posiadać przynajmniej 2 strony chronione, z tego jedna na którą użytkownik zostanie skierowany po zalogowaniu, oraz stronę logowania / rejestracji nowych użytkowników.

Dziękuję za uwagę!