Абсолютный вопрос для начинающих:
У меня есть файл шаблона index.html, который выглядит следующим образом:
...
<FRAMESET ROWS="10%, *">
<FRAME SRC="/top_frame">
<FRAME SRC="{{ bottom_frame_url }}">
</FRAMESET>
...
И обработчик запроса для / top_frame, который выглядит так:
class TopFrame(webapp.RequestHandler):
def get(self):
...
bottom_frame_url = self.request.get('bottom_frame_url')
...
Как видите, я хотел бы иметь значение {{bottom_frame_url}}, которое использовалось для генерации моего index.html, но как передать это значение моему обработчику запросов TopFrame?
Спасибо!
Редактировать: Я выполняю index.html из другого обработчика запросов:
class MainPage(webapp.RequestHandler):
def get(self):
...
bottom_frame_url = Site.qql("WHERE Category = :1 ORDER BY date DESC",category_name)
...
args = {
...
'bottom_frame_url': bottom_frame_url,
...
}
index_path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(index_path, args))
Но когда мы встречаемся с "/ top_frame" в шаблоне index.html, мой обработчик запросов TopFrame называется:
class TopFrame(webapp.RequestHandler):
def get(self):
...
bottom_frame_url = self.request.get('bottom_frame_url')
...
args = {
'bottom_frame_url': bottom_frame_url
}
self.response.out.write(template.render('topframe.html', args))
Но self.request.get ('bottom_frame_url'), похоже, не читает никакого значения. Я знаю, что значение было установлено в моем шаблоне index.html, потому что, когда я отображаю страницу, нижний фрейм отображается как веб-сайт, который я установил, но в верхнем фрейме отображается обратный след, заканчивающийся следующей ошибкой:
NameError: global name 'bottom_frame_url' is not defined
Похоже, мне нужно добавить еще немного кода в мой шаблон index.html, чтобы явно передать значение bottom_frame_url в мой обработчик запросов TopFrame. Это правильно?
Другая вещь, о которой я могу подумать, это то, что, хотя я передаю bottom_frame_url в качестве аргумента для отображения index.html, когда я пытаюсь отобразить topframe.html, этот аргумент еще не доступен, потому что я не рендерил нижний кадр еще. Может ли это быть так?