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:
views.py1 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.
Oddelenie matematiky