Python - vytvoření www stránky
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Python - vytvoření www stránkyPython - vytvoření www stránky

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

Python - vytvoření www stránky

Google       Google       27. 9. 2005       18 984×

Někdy potřebujeme jako výstup našeho programu vytvořit html stránku. Mám zde na mysli lokální vytváření html stránky, ne dynamické generování html, jako třeba pomocí php.

Reklama
Reklama

Jak vytvořit www stránku

Někdy potřebujeme jako výstup našeho programu vytvořit html stránku. Mám zde na mysli lokální vytváření html stránky, ne dynamické generování html, jako třeba pomocí php. Serverové dynamické generování html stránek Python umí také machr, ale o tom někdy jindy.


Pěšky za vozem

Snad i někoho napadne následující jednoduché, přesto v mnoha případech naprosto dostačující a přirozené řešení - čistě texové. Práce s textovými řetězci. Ukazuji v něm také, jak ho uložit a jak automaticky na konci skriptu zavolat prohlížeč, abychom si ihned prohlédli svůj výtvor:


top="<html>  <body bgcolor='lightyellow'>\n"
obsah=raw_input('Jak se jmenujes?: ')
obsah="Ja se jmenuji "+'<b style="color:red">'+obsah+"</b>"+"!\n"
spodek="</body> </html>"
stranka=top+obsah+spodek
print "\n"*2, stranka

nazevHTML='MojePrvniHtml.html'
ulozeno=file(nazevHTML,'w')
ulozeno.write(stranka)
ulozeno.close()

import webbrowser
webbrowser.open(nazevHTML)

Octavia

Tak se svezeme nějakým dobrým autem usmev. Myslím tím, že použijeme nějaký dobrý modul. V Pythonu máme tu výhodu, že za něj nemusíme platit. Modulů na vytváření html stránek je mnoho, opravdu mnoho. Snad proto, že napsat si svůj modul je někdy rychlejší, než ho hledat a naučit se ho používat a také je to dobré programátorské cvičení. Ale to snad později...


HTMLtags

Mě se zalíbil modul HTMLTags. Při jeho stahování si vyzkoušíte i něco navíc. Na této stránce si zkopírujte kód modulu (nikde jsem ho totiž nenašel uložený pro download), vložte v textovém editoru do dokumentu a uložte pod jménem HTMLTags.py. Pozor na velikosti písmen. Místa pro vhodné uložení jsou dvě. Buď v adresáři Lib/site-packages nebo přímo do adresáře, kde bude ležet váš skript.

Co to v tom modulu je?

Zastavil bych se jen u pár věcí. Na tomto scriptu je vidět jednoduchost a mohutnost Pythonu. Neuvěřitelně přehledný, krátký, ale přesto výkonný kód. Těsně před koncem vidíme ve dvou seznamech tagy. Nad tím jediná třída (objektové programování), která definuje metody sčítání (co se stane, když dva tagy budu sčítat), násobení (co se stane, když tag vynásobím číslem ) a tisku (co se stane, když ho budu chtít tisknout). Odstavec #create the classes je pak skutečně high level...

Použití

Uvedu část/výtah z dokumentace přímo z modulu s mými poznámkami a změnami.

Modul HTMLTags definuje třídy pro všechny HTML Tagy, bohužel velkými písmeny, což si však můžete přímo v kódu modulu změnit mrknuti (pohybujeme stále na půdě Open Source, případně GNU/GPL, narozdíl od placených řešení). Obecně se tag vytváří takto:

t = TAG(innerHTML, key1=val1,key2=val2,...)
takže "print t" vytiskne:
<TAG key1="val1" key2="val2" ...>innerHTML</TAG>
Například:
from HTMLTags import *
t= A('katalog', href="foo") 
print t  # ==> <A href="foo">katalog</A>
Proměnná t není text, ale instance objektu, která má svoje metody (viz objektové programování v Pythonu). I když "print t" vypadá, jako když to text je. Je to právě způsobeno metodou __str__() ve třídě TAG... Že je to skutečně instance zjistíte takto:
print repr(t)  # ==> <HTMLTags.A instance at 0x00935B20>
# nebo
t=t+'ahoj' 
# to způsobí chybu, protože chceme sčítat hrušky a jablka (instance a text)
# pokud to opravdu pořebuje, použijeme pomocny tag TEXT:
t=t+TEXT('ahoj')
Argument tagu může být jiný tag, takže můžeme tagy zanořovat do sebe:
print B(I('foo')) ==> <B><I>foo</I></B>
A máme tu slibované sčítání, jedna z high-level věcí:
print B('bar')+INPUT(name="bar") ==> <B>bar</B><INPUT name="bar">

První funkční příklad:

# -*- coding: cp1250 -*- 

import HTMLTags as H
# abychom nemuseli všude psát HTMLTags, ale stačilo H
# dejte pozor, nikde pak nesmíte použít H jako proměnnou
#     (například H=12)

hlavicka=H.HEAD(H.TITLE('Můj druhý HTML text'))
telo=H.BODY(H.H1('Toto je test')+
         H.TEXT('První řádka')+H.BR()+
         H.TEXT('Druhá řádka'))
stranka= H.HTML(hlavicka+telo)

nazevHTML='MojeDruheHtml.html'
ulozeno=file(nazevHTML,'w')
ulozeno.write(stranka.__str__()) 
# nestačí jako argument použít 'stranka'
# je třeba 'jinak a lépe' zavolat print
ulozeno.close()

print unicode(stranka.__str__(),'cp1250')
# kvuli češtině opět bohužel nestačí print stranka

import webbrowser
webbrowser.open(nazevHTML)
Výstup z programu:
<HTML>
<HEAD>
<TITLE>
Můj druhý HTML text
</TITLE>

</HEAD>
<BODY>
<H1>
Toto je test
</H1>
První řádka<BR>
Druhá řádka
</BODY>

</HTML>

Tabulky a CSS

stylesheet = H.LINK(rel="Stylesheet",href="doc.css")

radkyTabulky=H.TEXT()  # inicializace proměnné
for i in range(10):
    radkyTabulky=radkyTabulky+H.TR(H.TD(i)+H.TD(i*i))
stranka=H.HTML(H.HEAD(stylesheet)+H.BODY(H.TABLE(radkyTabulky)))

A to je vše

Těším na další pokračování seriálu na téma Python a WWW.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Pavel KosinaAutor programuje v Pythonu.
Web    

Nové články

Reklama
Reklama
Obrázek ke článku Pracujete u počítače ve stoje? Dbejte na správné držení těla

Pracujete u počítače ve stoje? Dbejte na správné držení těla

Práce ve stoje je jedna z variant, jak změnit polohu těla při dlouhodobé práci u počítače. Především je důležité nezapomínat na správné držení těla, abychom při práci nenamáhali naší krční páteř. Primářka MUDr. Michaela Tomanová představí hlavní bonusy a rizika práce u počítače ve stoje.

Obrázek ke článku Firmy musejí s nástupem Průmyslu 4.0 více dbát na kyberbezpečnost. V ohrožení je i jejich know-how.

Firmy musejí s nástupem Průmyslu 4.0 více dbát na kyberbezpečnost. V ohrožení je i jejich know-how.

Destabilizace firmy či ukradené know-how. To jsou možná hlavní budoucí rizika spojená s nedostatečnou kybernetickou bezpečností průmyslových firem, na která upozorňují experti. Vzhledem k postupující digitalizaci výrobních či technologických procesů a přechodu k takzvanému Průmyslu 4.0 může těchto hrozeb postupně přibývat. Varují před nimi i nejnovější průzkumy. 

Obrázek ke článku Nový CEBIT je připraven: Pochopit digitální dnešek a objevit digitální zítřek

Nový CEBIT je připraven: Pochopit digitální dnešek a objevit digitální zítřek

Nový veletrh  CEBIT je připraven. V polovině června začne v Hannoveru evropský festival obchodu s radikálně změněnou koncepcí věnovaný inovacím a digitalizaci.  CEBIT jedinečnou formou spojuje obchod v digitálním hospodářství 
s festivalovými prvky a posouvá do středu pozornosti téma digitální transformace hospodářství a společnosti.  

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý