Dynamické stránky v praxi. Bedřich Košata



Podobné dokumenty
Django, 2. cvičení url, views, templates. Úvod

Mgr. Vlastislav Kučera lekce č. 2

Michal Augustýn ALWIL Software Microsoft Most Valuable Professional

Mgr. Vlastislav Kučera přednáška č. 2

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Tvorba webu v HTML. Redakční systém. CMS Joomla! Co je Joomla

HTML Hypertext Markup Language

Server-side technologie pro webové aplikace

Mgr. Vlastislav Kučera Struktura stránky, hlavička,

1. Struktura stránky, zásady při psaní kódu, MVC pattern. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008)

Tvorba WWW stránek. Mojmír Volf

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Web of Science. Bibliotheca Academica

Inovace výuky prostřednictvím šablon pro SŠ

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework


X36WWW. Vícevrstvá architektura webové aplikace Martin Klíma. Tvorba Webu 2 1

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

ASP.NET MVC. Michal Horák 2008

(X)HTML, CSS a jquery

Tvorba stránek v HTML ve Wordu

Jak vznikala webová aplikace kolonizace.asp2.cz

Internet 2 css, skriptování, dynamické prvky

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák

HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy

Střední odborná škola a Střední odborné učiliště, Hořovice

Kapitola 5 Dynamický obsah načítaný

Stručný úvod pro programátory. Michal Kuchta

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Střední odborná škola a Střední odborné učiliště, Hořovice

Uspořádání klient-server. Standardy pro Web

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

Tvorba informačních systémů

NSWI096 - INTERNET. Úvod do HTML

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Úvod do tvorby internetových aplikací

Olga Rudikova 2. ročník APIN

Tvorba informačních systémů

WWW a HTML. Základní pojmy. Ivo Peterka

Michal Augustýn Microsoft Most Valuable Professional

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

INTERNETOVÁ DATABÁZE 40 ROČNÍKŮ OPERA CORCONTICA SBORNÍKU VĚDECKÝCH PRACÍ Z KRKONOŠSKÉHO NÁRODNÍHO PARKU

APLIKACE XML PRO INTERNET

Název Live prez Sear enta Maps

Od grafického návrhu k funkčnímu webu

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant

Tvorba webových stránek

Architektura softwarových systémů

Vývoj Internetových Aplikací

Tvorba WWW stránek. Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

Podpora nových webových technologií HTML5 a CSS3 v aktuálních verzích prohlížečů

Střední odborná škola a Střední odborné učiliště, Hořovice

Django Urls, views, templates

Dashboard. 1 Feb Feb 2012 Comparing to: Site. 4,776 Visits % Bounce Rate. 00:02:30 Avg. Time on Site.

<link> - definuje vztah k jiným XHTML dokumentům, typicky

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

FAKULTA SOCIÁLNÍCH STUDIÍ. Název práce. [Zvolte druh závěrečné práce] HANA KOTOLOVÁ. Vedoucí práce: [Napište jméno a příjmení školitele s tituly]

Úvod do aplikací internetu a přehled možností při tvorbě webu

Instalace a konfigurace web serveru. WA1 Martin Klíma

Oracle XML DB. Tomáš Nykodým

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Opatření děkana č. 1/2012 Pokyny pro vypracování bakalářských, diplomových a rigorózních prací na Přírodovědecké fakultě MU

Podstata titulku shoduje s účelem - zaujmout čtenáře. Cílem je zaujmout čtenáře a současně informovat vyhledávacího robota, o čem Vaše stránka je.

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Tomáš Herout

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

PROJEKT WEBOVÉ STRÁNKY Conor Anthony McGregor

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 4 VY 32 INOVACE

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

InterSystems Caché Post-Relational Database

Parsování HTML. Pro účely testování jsem vytvořil stránku parsovani.html. Zdrojový kód:

Vytvoření pokročilé Fotogalerie v Drupalu - Views

Použití databází na Webu

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Dashboard. 1 May May 2012 Comparing to: Site. 7,099 Visits % Bounce Rate. 00:01:54 Avg. Time on Site.

CSS Stylování stránek. Zpracoval: Petr Lasák

Základy programování v jazyce JAVA

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

HTML - Úvod. Zpracoval: Petr Lasák

DATA ARTICLE. AiP Beroun s.r.o.

Co je HTML. 1. Párový tag má začátek a konec: 2. Nepárový tag nemá ukončovací značku:

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

TNPW1 Cvičení aneta.bartuskova@uhk.cz

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Semestrální úloha 1 z předmětu Programovací jazyk C. Textový merge. Student:

Comfort panely Siemens s.r.o All Rights Reserved. Comfort panely

Střední odborná škola a Střední odborné učiliště, Hořovice

Pokyny pro vypracování bakalářských, diplomových a rigorózních prací na Přírodovědecké fakultě MU

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

CSS. SEO Search Engine Optimization (optimalizace pro vyhledávače)

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

D R U P A L V O J T Ě C H K U S W O J T H A

Úvod do aplikace SMS/MMS Manager

Ukázka knihy z internetového knihkupectví

RELAČNÍ DATABÁZE. Cíl:

Transkript:

Dynamické stránky v praxi Bedřich Košata

Reálné scénáře Statické stránky + dynamický search Všechno dynamické spousta práce a opakujících se úkolů SQL není příliš přenosné mezi databázovými systémy => nelze za chodu vyměnit např. MySQL za PostgreSQL => je praktické mít nějakou vrstvu mezi databází a generovaným HTML

Model jednoduché stránky Skript si pomocí SQL vytáhne data z databáze a vytvoří HTML stránku SQL se často opakuje a je nepřenosné Databáze SKRIPT HTML stránka

Model databázová mezivrstva Jednotlivé databázové objekty se modelují pomocí tříd Objektová mezivrstva se stará o generování SQL => při výměně databáze stačí upravit mezivrstvu Reálné objektové modely již různé databáze podporují Databáze Objektový datový model SKRIPT HTML stránka

Jak vypadá objektový model Django class Article( models.model): title = HTMLTextField ("Title of the article") page = models.positiveintegerfield ("Starting page") last_page = models.positiveintegerfield("last page", null=true, blank=true) authors = models.manytomanyfield( 'Author', through='article2author') doi = models.charfield (max_length=30) volume = models.positivesmallintegerfield() issue = models.positivesmallintegerfield() year = models.positivesmallintegerfield() abstract = HTMLTextField( "Abstract", null=true, blank=true) release_date = models.datetimefield( null=true) keywords = models.manytomanyfield( 'Keyword', through='article2keyword')

class Volume( models.model): number = models.positivesmallintegerfield( primary_key=true) year = models.positivesmallintegerfield(null=true) class Issue( models.model): id = models.positiveintegerfield( primary_key=true) volume = models.foreignkey (Volume) number = models.positivesmallintegerfield() class Author( models.model): given_name = HTMLCharField (max_length=50,null=true) surname = HTMLCharField (max_length=50) class Article( models.model): title = HTMLTextField ("Title of the article") page = models.positiveintegerfield ("Starting page") last_page = models.positiveintegerfield("last page", null=true, blank=true) authors = models.manytomanyfield( 'Author', through='article2author') doi = models.charfield (max_length=30) volume = models.positivesmallintegerfield() issue = models.positivesmallintegerfield() year = models.positivesmallintegerfield() abstract = HTMLTextField( "Abstract", null=true, blank=true) release_date = models.datetimefield( null=true) keywords = models.manytomanyfield( 'Keyword', through='article2keyword')

Model template engines Skript generuje stránku na základě dat => není oddělená logika od prezentace dat Návrh a úpravy vzhledu stránek musí dělat programátor Databáze Objektový datový model SKRIPT HTML stránka

Model template engines Template engine (šablonový stroj :) odděluje prezentaci dat od logiky Lze oddělit roli programátora a designéra. data Databáze Objektový datový model SKRIPT šablona HTML HTML stránka

Jak vypadá šablona Cheetah <HTML> <HEAD><TITLE>$title</TITLE></HEAD> <BODY> <TABLE> #for $client in $clients <TR> <TD>$client.surname, $client.firstname</td> <TD><A HREF="mailto:$client.email">$client.email</A></TD> </TR> #end for </TABLE> </BODY> </HTML>

Jak vypadá šablona Jinja nebo Django <HTML> <HEAD><TITLE>{{ title }}</TITLE></HEAD> <BODY> <TABLE> {% for client in clients %} <TR> <TD>{{ client.surname }}, {{ client.firstname }}</TD> <TD><A HREF="mailto:{{ client.email }}">{{ client.email }}</A></TD> </TR> {% endfor %} </TABLE> </BODY> </HTML>

Jak vypadá šablona Jinja inheritance <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> {% block head %} <link rel="stylesheet" href="style.css" /> <title>{% block title %}{% endblock %} - My Webpage</title> {% endblock %} </head> <body> <div id="content">{% block content %}{% endblock %}</div> <div id="footer"> {% block footer %} Copyright 2008 by <a href="http://domain.invalid/">you</a>. {% endblock %} </div> </body> </html>

Jak vypadá šablona Jinja inheritance {% extends "base.html" %} {% block title %}Index{% endblock %} {% block head %} {{ super() }} <style type="text/css">.important { color: #336699; } </style> {% endblock %} {% block content %} <h1>index</h1> <p class="important"> Welcome on my awsome homepage. </p> {% endblock %}