Python XML a Web 1 PGS 2012 23.2.2012



Podobné dokumenty
ZNAČKOVACÍ JAZYKY A JEJICH VYUŽÍVÁNÍ MARKUP LANGUAGE AND THEIR USE. Zdeněk Havlíček

1 Webový server, instalace PHP a MySQL 13

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

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek.

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

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

Java a XML. 10/26/09 1/7 Java a XML

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita

Úvod do tvorby internetových aplikací

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

NSWI096 - INTERNET JavaScript

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

Obsah prezentace. Co je to XML? Vlastnosti. Validita

MBI - technologická realizace modelu

1. Webový server, instalace PHP a MySQL 13

Elektronické publikování. doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB TU Ostrava

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

Práce se soubory opakování

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

14. Jazyk HTML (vývoj, principy, funkce, kostra stránky). Jazyk XML, XHTML. Algoritmizace - cyklus for, while a do while, implementace v jazyce

Základy WWW publikování

Ukládání a vyhledávání XML dat

Publikování map na webu - WMS

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

Š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

APLIKACE XML PRO INTERNET

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í

X L M L v v Of O f f i f ce XML OBECNĚ VBA pro Excel Petr Blaha XML v MS Office Michal Theodor

Systém elektronického rádce v životních situacích portálu

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

HTML Hypertext Markup Language

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

Programovací jazyky Přehled a vývoj

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

INFORMAČNÍ SYSTÉMY NA WEBU

Tvorba WWW stránek. Mojmír Volf

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy!

Microsoft Office 2003 Souhrnný technický dokument white paper

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Tvorba webu. Úvod a základní principy. Martin Urza

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

XML. Aleš Keprt

MODERNÍ WEB SNADNO A RYCHLE

Vývoj Internetových Aplikací

HTML - Úvod. Zpracoval: Petr Lasák

1. Začínáme s FrontPage

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Požadavky pro výběrová řízení TerraBus ESB/G2x

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Základy XML struktura dokumentu (včetně testových otázek)

13. Vytváření webových stránek

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Ukazka knihy z internetoveho knihkupectvi

Oracle XML DB. Tomáš Nykodým

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant

XML terminologie a charakteristiky. Roman Malo

Použití databází na Webu

Django. Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Michal Krátký, Miroslav Beneš

Internetové publikování

Jazyky pro popis dat

Elektronická podpora výuky předmětu Komprese dat

Microsoft Office 2003 Souhrnný technický dokument white paper

TÉMATICKÝ OKRUH Softwarové inženýrství

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

přes webový prohlížeč pomocí Ing. Tomáš Petránek

pracuje na principu Požavek/Odpověď (request/response) výhodou je jednoduchost a teoretická možnost přenášet objekty jakéhokoliv druhu

Internet Information Services (IIS) 6.0

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc

Tvorba informačních systémů

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Analýza dat a modelování. Speciální struktury

Tvorba informačních systémů

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

Tvorba informačních systémů

CSS V DIGITÁLNÍ KARTOGRAFII

nástroj pro jednoduchou správu a vedení agendy studentských počítačových sítí na kolejích SU OPF Karviná Ing.

36 Elektronické knihy

SCHÉMOVÉ JAZYKY. Přednáška z předmětu KMA/POK. Otakar ČERBA Západočeská univerzita v Plzni

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

XML a nové trendy v publikování na Webu

Administrace webu Postup při práci

Alena Malovaná, MAL305

Olga Rudikova 2. ročník APIN

Transkript:

Python XML a Web 1

Obsah XML Validace DTD a XSD Práce s XML - SAX a DOM Python a XML Tvorba XML bez použití knihoven Knihovna PyXML SAX Knihovna PyXML DOM Knihovna LXML validace DTD a XSD 2

XML extensible Markup Language ( rozšiřitelný značkovací jazyk ) Vyvinut a standardizován W3C Výměna dat mezi aplikacemi Publikování dokumentů popisuje obsah ne vzhled (styly) Styly vzhled CSS, transformace XSL DTD, XSD definují jaké značky, atributy, typy bude XML obsahovat Parser zkontroluje, zda XML odpovídá definici 3

Syntaxe XML XML dokument je text, Unicode zpravidla UTF-8 well-formed = správně strukturovaný Jeden kořenový element Neprázdné elementy musí být ohraničeny startovací a ukončovací značkou (<ovoce>jablko</ovoce>) Prázdné elementy mohou být označeny tagem prázdný element (<ovoce/> ) Všechny hodnoty atributů musí být uzavřeny v uvozovkách jednoduchých (') nebo dvojitých ("), ale jednoduchá uvozovka musí být uzavřena jednoduchou a dvojitá dvojitou. Opačný pár uvozovek může být použit uvnitř hodnot Elementy mohou být vnořeny, ale nemohou se překrývat; to znamená, že každý (ne kořenový) element musí být celý obsažen v jiném elementu Příklad jidlo.xml 4

DTD Document Type Definition jazyk pro popis struktury XML případně SGML dokumentu Omezuje množinu přípustných dokumentů spadajících do daného typu nebo třídy DTD tak například vymezuje jazyky HTML a XHTML. Struktura třídy nebo typu dokumentu je v DTD popsána pomocí popisu jednotlivých elementů a atributů. Popisuje jak mohou být značky navzájem uspořádány a vnořeny. Vymezuje atributy pro každou značku a typ těchto atributů. Připojení ke XML: <!DOCTYPE kořen SYSTEM "soubor.dtd"> Příklad DTD DTD je poměrně starý a málo expresivní jazyk. Jeho další nevýhoda je, že DTD samotný není XML soubor. 5

XSD XML Schema Definition Popisuje strukturu XML dokumentu Definuje: místa v dokumentu, na kterých se mohou vyskytovat různé elementy Atributy které elementy jsou potomky jiných elementů pořadí elementů počty elementů zda element může být prázdný, nebo zda musí obsahovat text datové typy elementů a jejich atributů standardní hodnoty elementů a atributů Příklad XSD 6

Aplikace XML XHTML Nástupce jazyka HTML. RDF Resource Description Framework, specifikace, která umožňuje popsat metadata, např. obsah a anotace HTML stránky. RSS je rodina XML formátů, sloužící pro čtení novinek na webových stránkách SMIL Synchronized Multimedia Integration Language, popisuje multimedia pomocí XML. MathML Mathematical Markup Language je značkovací jazyk pro popis matematických vzorců a symbolů pro použití na webu. SVG Scalable Vector Graphics je jazyk pro popis dvourozměrné vektorové grafiky, statické i dynamické (animace). DocBook Sada definic dokumentů a stylů pro publikační činnost Jabber Protokol pro Instant messaging SOAP Protokol pro komunikaci mezi Webovými službami Office Open XML, OpenDocument Souborový formát určený pro ukládání a výměnu dokumentů vytvořených kancelářskými aplikacemi 7

Verze XML Aktuální verze XML je 1.1 (od 16. srpna 2006) První verze XML 1.0 Obě verze se liší v požadavcích na použité znaky v názvech elementů, atributů atd. Verze 1.0 dovolovala pouze užívání znaků platných ve verzi Unicode 2.0, která obsahuje většinu světových písem, ale neobsahuje později přidané sady jako je Mongolština a podobně. Verze XML 1.1 zakazuje pouze řídící znaky, což znamená, že mohou být použity jakékoli jiné znaky. Je třeba poznamenat, že omezení ve verzi 1.0 se vztahuje pouze na názvy elementů a atributů. Jinak obě verze dovolují v obsahu dokumentu jakékoli znaky. Verze 1.1 je tedy nutná, pokud potřebujeme psát názvy elementů v jazyku, který byl přidán do Unicode později. 8

Související technologie Jmenné prostory v XML - Umožňují kombinovat značkování podle různých standardů v jednom dokumentu (příklad tabulky.xml) XSLT - Transformace dokumentu v XML na jiný, odvozený dokument - v XML, HTML nebo textový. XQuery - Dotazy nad daty v XML. 9

Práce s XML - SAX SAX Simple API for XML Sériový přístup ke XML Proudové zpracování, při kterém se dokument rozdělí na jednotlivé jeho části Pak se volají jednotlivé události, které ohlašují nalezení konkrétní části Způsob jejich zpracování je na programátorovi Vhodné pokud se čte celý obsah souboru Nízké paměťové nároky, vysoká rychlost, nelze zapisovat 10

Práce s XML - DOM Document Object Model Objektově orientovaná reprezentace XML Umožňuje modifikaci obsahu, struktury DOM umožňuje přístup k dokumentu jako ke stromu Celý XML dokument v paměti (náročné na paměť) Vhodné tam, kde přistupujeme k elementům náhodně 11

Tvorba XML bez použití knihoven Příklad txt_to_xml.py 12

XML knihovny Pythonu PyXML http.//sourceforge.net/projects/pyxml LXML http://pypi.python.org/pypi/lxml 13

PyXML SAX Parser čte XML dokument a pro každou dílčí část vyvolá událost My musíme napsat obsluhu události (handler) Import z knihovny: from xml.sax import handler, make_parser Vytvoření parseru: parser = make_parser() Parsování: parser.parse(infile) Vytvoření třídy handleru: Class MySaxHandler(handler.ContentHandler) Uvnitř např. metody startelement Nastavení handleru: parser.setcontenthandler(handler) Zjištění well-formed: Příklad sax_ver.py Práce s elementy: Příklad sax_elem.py Práce s atributy: Příklad sax_elem.py 14

PyXML DOM Všechny objekty v paměti, stromová struktura Uzly stromu nody Typy nodů Node základní prvek a předek dalších druhů nodů Document počáteční uzel Attr atribut Element element Text obsah elementu Knihovny pro práci s DOM minidom, ElementTree,... Parsování: doc = minidom.parse(infile) Kořen stromu: rootnode = doc.documentelement Zjištění určitých potomků: ovoce = rootnode.getelementsbytagname( ovoce ) Příklady: dom_ver.py, dom_elem.py, dom_atr, dom_add.py 15

LXML validace DTD Import z knihovny: from lxml import etree Postup validace: doc = etree.parse(xmlname) dtd = etree.dtd(dtdfile) if dtd.validate(doc) == True:... Příklad: val_dtd.py 16

LXML validace XSD Postup validace: doc = etree.parse(xmlname) xmlschema_doc = etree.parse(xsdfile) xmlschema = etree.xmlschema(xmlschema_doc) if xmlschema.validate(doc) == True:... Příklad val_xsd.py 17

18

Obsah Webové frameworky XIST MVC architektura web2py Zope 19

Webové frameworky (1) XIST, HTMLTags, HTMLgen, HyperText Tvorba statických stránek Stránka je programově sestavena, lze ji uložit na disk Lze snadno a rychle vygenerovat stránky Použití spíše jako výstup programu (export sady stránek) Django Oblíbená rozsáhlá knihovna, rychlý vývoj Tvorba relačních webů admin rozhraní, uživatelská rozhranní s různými právy 20

Webové frameworky (2) TurboGears Velká knihovna Tvorba webů založených na databázi (obsahuje např. knihovnu SQLObject mapování objektů do relačních databází) Zope Tvorba serverů se správou objemných systémů O-o skriptovací skriptovací jazyk Obsahuje ZODB databází objektů Nová verze Zope 3 21

Webové frameworky (3) Další CherryPy Pylons web.py QP, Gizmo... web2py (dříve Gluon) Vývoj přes webové rozhranní Využívá řízení psané v pythonu Vícejazyčná podpora Logování chyb 22

XIST Rozšířený HTML/XML generator http://www.livinglogic.de/python/xist/ Předchůdci: HTMLgen, HyperText Stromová tvorba HTML, parsing HTML transformace Příklad tvorba HTML 23

MVC architektura Často aplikovaný model při programování webu MPO Model, Pohled, Ovladač MVC Model, View, Controller Model provádí obchodní logiku (práce s DB) Pohled část zajišťující formátování výstupu systému Ovladač zpracovává vstup a předává ho modelu, řídí aplikaci Oddělení aplikační logiky od zobrazování je vhodné Aplikace je pružnější, snadno modifikovatelná Kód vypadá přehlednější Roste opětovná použitelnost částí systému 24

web2py Redakční systém založený na pythonu (řízení aplikace) Nemusí se instalovat, pouze se stáhnou knihovny: http://mdp.cti.depaul.edu (je zde i tutorial) Po stažení spustit web2py.exe (Windows) Nastavit adresu (localhost = 127.0.0.1), administrátorské heslo, port (8000) Otevře se admin prostředí Lze vytvořit novou aplikaci (MujWeb), upload existující 25

web2py záložky errors logované chyby cleanup smaže všechna chybová hlášení v errors packall, compile zabalení, kompilování design tvorba/úprava webu 26

web2py design Models slouží k definování reprezentace dat, databázových tabulek, sestav Controllers řízení, aplikační logika, každé url je mapováno na funkci v controllers (python) Views prezentační vrstva, šablony, soubory, skrze které se provádí výstup z funkcí v controllers (html) Languages překlad slov v aplikaci, pro vícejazyčné weby, překlad lze vkládat editačním polem Static file vložení statických souborů (obrázky, javascript, css, text) 27

web2py defaultní soubory Nová aplikace odděděná od exmples, automaticky voženy některé soubory Controllers appadmin.py základní funkce pro práci s HTML stránkou default.py obsahuje základní zprávu zpbrazenou na stránce (index) Views layout.html šablona budoucí HTML stránky, základ našeho webu, obsahuje layout, css default\index.html vstupní stránka aplikace 28

Web2py základní technologie Vytvoříme pythonovský soubor v Controllers pokusy.py V něm funkci hello() vracející ahoj světe Výstup v prohlížeči: http://127.0.0.1:8000/[jméno_aplikace]/[controller]/[fu nkce] http://127.0.0.1:8000/mujweb/pokusy/hello Pokud ve Views přidáme soubor pokusy.hello.html, pak výstup funkce hello() bude zobrazen skrze tento soubor (šablonu) 29

Web2py další vlastnosti Výstup z funkce lze značkovat (return T( ahoj světe )), potom se řetězec vloží do slovníku pro překlad (v Languages) Výstup skrze šablonu: controller předá šabloně data: return dict(message=t( ahoj světe )), kde message je jméno proměnné kterou můžeme použít v šabloně Ve view vytvoříme soubor pokusy/hello.html: {{extend layout.html }} <h1>{{=message}}</h1> Extend udává jméno šablony od které se bude dědit {{python code}} Na místo {{=message}} se vloží obsah proměnné message 30

Web2py další vlastnosti Změna šablony v controlleru: response.view= pokusy/hello Vytvoření stránky nepodléhající šabloně: Return HTML(BODY(H1(T( ahoj světe,_style= color: red; ),_bgcolor= black )),xml() Přesměrování: Redirect(URL(r=request,f= ahoj )) Přesměrovává na funkci ahoj ve stejném.py souboru Generování stránky s chybou: def raisehttp(): raise HTTP(400, vnitrni chyba: spatny pozadavek ) 31

Web2py další vlastnosti Status: return dict(request=request,session=session, response=response) Použije se implicitní šablona generic.html Práce se session: def pocitaninacteni(): if not session.counter: session.counter=0 session.counter+=1 return dict(nacteno=session.counter) Použití cyklu v šabloně: <h3>{{fori in range(nacteno):}}{{=i}}...{{pass}}</h3> ( range(4) => [0,1,2,3] ) 32

Web2py další vlastnosti Layout tvorba menu def index(): response.menu=[['index',true,url(r=request,f='index')],['druhá strana',false,url(r=request,f='strana2')]] response.flash='kliknul jsi na index' return dict(message="toto je index") def strana2(): response.menu=[['index',false,url(r=request,f='index')],['druhá strana',true,url(r=request,f='strana2')]] response.flash='kliknul jsi na druhou stranu' return dict(message="toto je druhá strana") response.menu vložení do menu nepozicovaném v css layout.html Struktura položky menu: text, zvýraznění, url 33

Web2py další vlastnosti Testy, cykly, proměnné uvnitř šablony (menu/strana2), výjimky, funkce Formuláře a jejich validace Práce s DB 34

Zope - technologie Akulální verze: 3 Instalace serveru, jeho instance Publikování objektů Zope ORB Zope Objekt Request Broker (zprostředkovatel požadavků na objekty) Vlastní konfigurační jazyk: ZCML 35

Zope - návody Instalace: http://zeapartners.org/scl/2006/04/25/z3-install/z3- install.html Hello World: http://zeapartners.org/scl/2006/04/25/z3- helloworld/z3-helloworld.html Book Marker: http://zissue.berlios.de/z3/zope3in30minutes.html 36