User Tools

Site Tools


doc:appunti:prog:django

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:prog:django [2011/06/26 10:52] – [URL] niccolodoc:appunti:prog:django [2011/06/26 11:49] – [Mettere i dati nella vista] niccolo
Line 165: Line 165:
         </html>         </html>
     ''' % (     ''' % (
-        u'Balance'+        u'Titolo della vista'
     )     )
     return HttpResponse(output)     return HttpResponse(output)
Line 185: Line 185:
 ==== Mettere i dati nella vista ==== ==== Mettere i dati nella vista ====
  
 +Invece di includere il codice HTML direttamente nella vista (funzione Python) si utilizza il sistema dei **template**.
 +
 +Nella directory radice del progetto si crea la sottodirectory **''templates''** e nel file **''settings.py''** si definisce la **''TEMPLATE_DIRS''** (controllare se il modulo os.path è già incluso):
 +
 +<code python>
 +import os.path
 +
 +TEMPLATE_DIRS = (
 +    os.path.join(os.path.dirname(__file__), 'templates),
 +)
 +</code>
 +
 +Quindi si crea il file **''templates/my_view.html''** che conterrà dei segnaposto del tipo **''%%{{nome}}%%''** che verranno sostituiti a runtime:
 +
 +<code html>
 +<html>
 +<body>
 +  <h1>{{page_title}}</h1>
 +  <p>{{page_body}}</p>
 +</body>
 +</html>
 +</code>
 +
 +Infine si modifica il codice della vista:
 +
 +<code python>
 +from django.http import HttpResponse
 +from django.template import Context
 +from django.template.loader import get_template
 +
 +def my_view(request):
 +    template = get_template('my_view.html')
 +    variables = Context({
 +        'page_title': u'Titolo della vista',
 +        'page_body':  u'Contenuto della pagina'
 +    })
 +    output = template.render(variables)
 +    return HttpResponse(output)
 +</code>
 +
 +FIXME Da fare:
 +
 +  * Aggiungere nella vista l'importazione del modello dati.
 +  * Aggiungere nel template l'iterazione per mostrare tutti gli oggetti del modello.
 +  * Trovare il modo per mostrare i dati aggregati (somma di un campo, ecc.).
 ===== Webserver di test ===== ===== Webserver di test =====
  
doc/appunti/prog/django.txt · Last modified: 2011/06/28 09:15 by niccolo