Frage

Ich kann Chamäleons Tags nicht verstehen. Ich bin ein Django -Benutzer, habe mich aber entschlossen, meine CompSCI -Kurskollegen und mich in Pyramide vorzustellen, da ich jedoch leichter = leichter zu lernen hat.

Im Moment entgeht das $ {} -Tag allen HTML -Tags, die ich versuche, es zu geben. In Django gab es eine Möglichkeit, festzustellen, dass eine Variable "sicher" ist und nicht entkommen muss.

Wie kann ich dasselbe in Pyramide / Chamäleon tun?

War es hilfreich?

Lösung

Chamäleon basiert auf dem Zope -Seitenvorlagen Bibliothek. Wenn Sie also die Chamäleon -Dokumentation fehlen, möchten Sie möglicherweise die ZPT -Dokumente überprüfen.

In jedem Fall gibt es zwei wichtige Möglichkeiten, dies zu tun. Wenn Sie mithilfe eines TAL: Ersatzs oder Tal: Content -Tag -Attributs eingesetzt werden, können Sie a verwenden "Struktur". Dies geschieht durch Putschen structure Zu Beginn der Zeichenfolge, gefolgt von einem Raum und schließlich dem Namen der Vorlagenvariablen, die Sie rendern möchten. Im Folgenden wird ein Beispiel angezeigt:

s = '''
<html>
    <head>
    </head>
    <body>
        <div tal:content="structure t">
        </div>
    </body>
</html>
'''

from chameleon import PageTemplate

pt = PageTemplate(s)

print pt(t='<p>Hi!</p>')

Wenn Sie die Funktionen von tal: Ersetzen oder TAL: Inhaltsfunktionen nicht verwenden möchten, müssen Sie Ihre Zeichenfolge in ein Objekt einwickeln, das der Chameleon -Renderer nicht entkommen wird (dh es hat eine __html__ Methode, die zurückgibt, was die Zeichenfolge aussehen soll). Normalerweise bedeutet dies, wie unten gezeigt eine "wörtliche" Klasse erstellt:

a = '''
<html>
    <head>
    </head>
    <body>
        <div>
            ${t}
        </div>
    </body>
</html>
'''

from chameleon import PageTemplate

pt = PageTemplate(a)

class Literal(object):
    def __init__(self, s):
        self.s =s

    def __html__(self):
        return self.s

print pt(t=Literal('<p>Hi!</p>'))

Andere Tipps

Chameleon erlaubt auch $ {struktur: markup}.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top