Hello, world verzia 3
Mať HTML kód vo vnútri view nie je dobrý nápad. HTML by malo byť iba v šablónach, aby sme mali jedno miesto, kde je HTML a nemuseli teda pri zmene HTML zasahovať do kódu.
Teraz ideme upraviť Hello, world verziu 2 tak, aby sme použili Template.
Keďže vytvárať Template zo stringu odporuje zásade v prvom odstavci, šablóny budú v súboroch.
Vytvoríme v adresári projektu hello podadresár s názvom napr. templates.
V podadresári templates vytvoríme šablónu hello.html (Nazval som ju tu z technických
dôvodov hello.txt.)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <style type="text/css"> h1 { color:red; font-style:normal; } </style> <head> <title> Hello, world v3 </title> </head> <body> <h1> Hello, {{ who }}. </h1> </body> </html>hello.txt
Musíme djangu povedať, z ktorého adresára má načítavať templates. V settings.py pridáme do TEMPLATE_DIRS reťazec
1 '/home/gejza/django/hello/templates'
- Cesta musí byť absolútna!
views.py vyzerá takto:
1 2 from django.http import HttpResponse 3 from django.template import Context,loader 4 5 def hello(request,who): 6 t=loader.get_template('hello.html') 7 c=Context({'who':who}) 8 html=t.render(c) 9 return(HttpResponse(html))
Celý projekt máte tu: hello_v3.tar.gz.