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



Podobne dokumenty
Zaawansowany kurs języka Python

Kurs rozszerzony języka Python

Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX

Laboratorium Kierunki Rozwoju oprogramowania REST, Django

Paweł Cieśla. Dokumentacja projektu

WICKET VS. DJANGO. Leszek Gawron vs. Michał Leszczyński

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

METODY PROGRAMOWANIA

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Nowe technologie baz danych

NARZĘDZIA WIZUALIZACJI

Wykład :45 BD-1 W_3

Wykład 05 Bazy danych

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Bazy Danych i Usługi Sieciowe

Zaawansowane Techniki Bazodanowe

Wykład 8. SQL praca z tabelami 5

Struktura drzewa w MySQL. Michał Tyszczenko

Baza danych do przechowywania użytkowników

Bazy danych i usługi sieciowe

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

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

Podstawowe wykorzystanie Hibernate

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Język SQL, zajęcia nr 1

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

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

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Wielojęzykowość w aplikacjach J2EE. Tomasz.Skutnik@e-point.pl

Wordpress. Wstęp do tworzenia pluginów. Piotr Wasilewski wasilewski.piotrek (at) gmail.com

Aplikacje www laboratorium

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

Pakiety podprogramów Dynamiczny SQL

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

Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Chatter Aplikacja internetowa

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

Projektowanie systemów baz danych

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Programowanie w Ruby

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Modelowanie wymiarów

Instrukcja obsługi narzędzia API

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Indeksowanie w bazach danych

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

Laboratorium nr 3 Podstawy Ruby on Rails

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

TABUN_CMS. System zarządzania treścią dla dedykowanej grupy użytkowników. Tabun_CMS 2008 Marcin Biegun, Szymon Bąk

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Specyfikacja implementacyjna aplikacji serwerowej

Programowanie w Ruby

Relacyjne bazy danych. Podstawy SQL

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Programowanie w Ruby

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Uprawnienia, role, synonimy

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Przykładowa baza danych BIBLIOTEKA

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

NARZĘDZIA WIZUALIZACJI

Koncepcja oprogramowania SELS

Wykład 6. SQL praca z tabelami 3

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Politechnika Częstochowska. Projektowanie systemów użytkowych II

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Programowanie i projektowanie obiektowe

Projekt: Living Graft portal intranetowy

Budowanie interfejsów do baz danych

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Autor: Joanna Karwowska

Oracle PL/SQL. Paweł Rajba.

znaleźć wszystkie rekordy dotyczące adresów przy ulicy Hożej (dowolnego miasta!);

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Tuning SQL Server dla serwerów WWW

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

Internetowe bazy danych

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

Ćwiczenia 2 IBM DB2 Data Studio

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Post-relacyjne bazy danych

Podstawy programowania III WYKŁAD 5

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

RFP. Wymagania dla projektu. sklepu internetowego B2C dla firmy Oplot

Relacyjne bazy danych. Podstawy SQL

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"

Instrukcja instalacji aplikacji PlanSoft.org

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Instrukcja instalacji aplikacji Plansoft.org

Transkrypt:

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

Django napisany w Pythonie DRY czyli zasada nie powtarzaj się w odniesieniu do tworzenia aplikacji opensource'owy zrąb służący do tworzenia aplikacji internetowych (licencja BSD) opiera się na wzorcu projektowym MVC 2

Historia Prace nad Django rozpoczęły się jesienią 2003 roku Trzy główne strony gazety World Online LJWorld.com (wiadomości), Lawrence.com (rozrywka/muzyka) KUsports (sport), wiele nagród w dziedzinie internetowej publicystyki Dwa lata później, latem 2005 roku otwarcie kodu zrębu 3

Historia powstania 4

Django powstało z aplikacji (Ellington CMS) bardzo duża skalowalność i wydajność pod obciążeniem przejrzystość kodu przyjazne adresy dokumentów z możliwością dowolnego ich kształtowania 5

Django własny, prosty serwer do testowania aplikacji interaktywna konsola wsparcie dla współdzielenia treści między stronami współpracuje z Apache poprzez mod_python oraz z innymi serwerami poprzez protokoły FastCGI i SCGI świetny ORM 6

Django zrąb RSS zrąb komentarzy zrąb cache'owania automatyczny admin (panel edytorski) internacjonalizacja system szablonów 7

Jak rozpocząć pracę? $ django-admin startproject mysite $ cd mysite/ $ ls init.py manage.py settings.py urls.py Te pliki to: init.py: plik informujący Pythona o tym, że katalog nadrzędny powinien być traktowany jako pakiet Pythona. manage.py: Działające z linii poleceń narzędzie, które pozwala na interakcję z projektem Django. settings.py: Ustawienia/konfiguracja dla tego projektu Django. urls.py: Deklaracja adresów URL dla tego projektu Django; mapa serwisu. 8

Jak rozpocząc pracę? cd.. $ python./manage.py startapp myapp $ cd myapp $ ls myapp/ init.py models.py views.py (... implementacja...) $ python./manage.py syncdb $ python./manage.py runserver 8080 9

Model idealnie odwzorowuje strukturę bazy danych całkowita abstrakcja od SQL informacja o modelu tylko w modelu brak magii 10

Model - simple 11

Model 12

Model 13

Model - SQL $ python./manage.py sqlall myapp BEGIN; CREATE TABLE "myapp_person" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(128) NOT NULL ) ; CREATE TABLE "myapp_group" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(128) NOT NULL ) ; CREATE TABLE "myapp_membership" ( "id" integer NOT NULL PRIMARY KEY, "person_id" integer NOT NULL REFERENCES "myapp_person" ("id"), "group_id" integer NOT NULL REFERENCES "myapp_group" ("id"), "date_joined" date NOT NULL, "invite_reason" varchar(64) NOT NULL ) ; CREATE INDEX "myapp_membership_person_id" ON "myapp_membership" ("person_id"); CREATE INDEX "myapp_membership_group_id" ON "myapp_membership" ("group_id");14 COMMIT;

Model - QuerySet Leniwe wylicznie, poniższy kod to tylko 1 zapytanie do bazy w ostatniej linijce SELECT foo FROM Entry LIMIT 5 SELECT foo FROM Entry OFFSET 5 LIMIT 5 SELECT foo FROM Entry ORDER BY headline LIMIT 1 15

Szablony kierowane do nieprogramistów 16

Szablony 17

Widok detail.html: {{ person.id }} <br/> {{ person.first_name }} <br/> {{ person.last_name }} <br/> 18

URL dispatcher /articles/2005/03/ news.views.month_archive(request, year='2005', month='03') 19

Admin odzielna aplikacja automatycznie generowny na podstawie modeli pozwala w dowolny sposób modyfikować modele prawa dostępu logowanie historii zmian możliwość dostosowania do potrzeb wielojęzyczny 20

Admin - Model 21

Admin Pokaz interfejsu admina na żywo 22

Autoryzacja użytkownicy uprawnienia role (grupy) wiadomości systemowe 23

Autoryzacja 24

Rejestracja 25

Cache'owanie obsługuje różne backendy memcached, db, filesystem, localmem, deweloperskie: simply, dummy zarządzanie Ilość, timeout settings.py 26

Testowanie 27

Testowanie 28

Podsumowanie prostota łatwość nauki duże możliwości wysoka wydajność stałe i aktywne rozwijanie stabilość (wiele dużych i udanych wdrożeń) 29

Django w sieci grono.net washingtonpost.com lawrence.com - wielokrotnie nagradzana witryna o lokalnych wydarzeniach kulturalnych, opowiadaniach, zespołach, drinkach itp. everyblock.com - ogólnodostępna baza przestępstw i zdarzeń z Chicago, New York i San Francisco LJWorld.com - witryna jednej z gazet 30

31

32

Gdzie szukać dalej? djangoproject.com oficjalna strona Django www.djangobook.com - darmowa książka o Django django.pl - Polska Społeczność Django svn co http://code.djangoproject.com/svn/djangoproject.com 33