[Python] Programmazione web
Manlio Perillo
manlio_perillo a libero.it
Sab 26 Apr 2008 10:44:13 CEST
Nicola Larosa ha scritto:
> Manlio Perillo wrote:
>> Questo significa che devi fare i salti mortali se ad esempio vuoi
>> usare il sistema di templating di Django in altre applicazioni;
>
> *cough* Salti mortali?
Si, salti mortali ;-).
> Son quattro istruzioni, eh:
>
Non cambia il fatto che l'API č mal disegnata.
> from django.conf import settings
> from django.template.loader import render_to_string
>
> settings.configure(TEMPLATE_DIRS=['./'])
> output = render_to_string('tpl.html')
>
Come detto, gestisce lo stato del templating in un modulo (globale),
invece che avere qualcosa come:
lookup = TemplateLookup(template_dirs=['.'], ...)
output = lookup.render_to_string('tpl.html')
Ovviamente per evitare che ogni view debba instanziarsi il suo template
lookup, basta metterlo nell'environ:
# da qualche parte Django deve fare...
environ['django.template'] = lookup
def render_to_string(environ, filename):
"""Funzione definita da Django, non dall'utilizzatore!"""
lookup = environ['django.template']
return lookup.render_to_string(filename)
Per me una API di un framework basato su WSGI dovrebbe essere cosė.
Lo stato *va* mantenuto nell'environ, con in pių funzioni di supporto
che accettano l'environ come parametro e fanno il loro lavoro.
> E te l'avevo pure mandato, lo script co'sta roba dentro. ;-)
>
A proposito, lo script che ti avevo rimandato lo hai controllato?
Ciao Manlio Perillo
Maggiori informazioni sulla lista
Python