Пилоны «глобальное имя« с »не определено»

1

У меня была установка Pylons v0.9.7, и был создан проект с использованием genshi. Я пытался кодировать простой тестовый пример, но он не работает.

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>

и сообщение об ошибке (в журнале)

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

Пожалуйста, помогите мне найти ошибку.

Теги:
pylons
genshi

1 ответ

3
Лучший ответ
    c.title="title"

требуется определить имя c (глобально или локально). Вы никогда не определяете ничего с именем c.

Итак, определите подходящее имя c (где можно установить атрибут title!), прежде чем назначать что-либо c.title!

Следующий намек: from pylons import tmpl_context as c - вы не сделали этого from ... import ... as, теперь вы? -)

  • 1
    Даёшь свет как подсказку. У меня есть твоя книга (python CookBook)! Я очень польщен В дальнейшем он пытается снова.
  • 0
    Ааа! это сработало! спасибо Алекс! я понимаю "C был tmpl_context". Я хотел бы искренне выразить нашу благодарность.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню