Frage

Ich hatte Pylons v0.9.7 eingerichtet und ein Projekt mit Genshi erstellt. Ich habe versucht, einen einfachen Testfall zu codieren, aber es funktioniert nicht.

Code: member.py

coding: utf-8 
import logging import foo.model

from foo.lib.base import *

log = logging.getLogger(__name__)

class MemberController(BaseController):

    def index(self):
        c.title="title"
        c.mes="message"
        return render('test.html')

Code: test.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:py="http://genshi.edgewall.org/"
      lang="ja">
    <head>
        <title>${c.title}</title>
    </head>
<body>
    <p>${c.mes}</p>
</body>
</html>

und Fehlermeldung (auf Protokoll)

Error - <type 'exceptions.NameError'>: global name 'c' is not defined

Bitte helfen Sie mir, den Fehler zu finden.

War es hilfreich?

Lösung

    c.title="title"

Benötigt Namen c definiert werden (global oder lokal). Sie definieren nie irgendetwas genannt c.

Definieren Sie also einen geeigneten Namen c (eine, bei der Attribut vorliegt title kann gesetzt werden!) Bevor Sie etwas zuweisen c.title!

Nächster Hinweis: from pylons import tmpl_context as c - Du hast nicht tun das from ... import ... as, Wusstest du?-)

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