Я просто разбираюсь с шаблоном jinja2 на GAE. То, что я пытаюсь сделать, - отобразить статус-мс в обработанном шаблоне без повторного отображения всего шаблона.Обработка частичных страниц, использование обработчика запроса webapp2 для передачи сообщения
У меня есть обработчик запросов webapp2, который занимается отправкой почты. В случае исключения ошибки я хотел бы отобразить сообщение на странице. То же самое, если почта была успешно отправлена.
Я представляю шаблон и передаю сообщение в качестве значения шаблона. Я вижу, что это не способ делать то, что снова возвращает весь шаблон. То, что я хочу сделать, это просто передать msg.
class ContactoPage(webapp2.RequestHandler):
global template
template = jinja_environment.get_template('contacto.html')
def get(self):
self.response.out.write(template.render({'mail_status':''}))
def post(self):
userMail=self.request.get("emailFrom")
if not mail.is_email_valid(userMail):
self.response.out.write(template.render({'mail_status':'wrong mail address'}))
return
subject="Test Mail"
userMessage=self.request.get("emailBody")
message=mail.EmailMessage(sender="[email protected]",subject="Test")
message.to=userMail
message.body=("Thank you! \n"
"Your mail: %s \n"
"Subject: %s \n"
"Message: %s \n"
%(userMail,subject,userMessage))
message.send()
self.response.out.write(template.render({'mail_status':'rudy, a msg to you'}))
Thx, Деннис
что вы делать хорошо. Вы не можете передать сообщение, как вы предлагаете, без какого-либо javascript, работающего на стороне клиента, управления POST данных, а затем обновления только этого компонента страницы. поэтому вы должны сделать все, чтобы изменить его. http://ru.wikipedia.org/wiki/Ajax_%28programming%29 –
благодарит за возможность сообщить мне. Я портировал этот бит кода из существующего приложения, которое я написал в asp.net, используя обновляемые панели. Я думал, что что-то подобное было бы доступно с шаблонами jinja2. я буду рассматривать что-то делать на стороне клиента, так как я не хочу, чтобы вся страница перезагружалась. –
np. это могло бы помочь: http://www.django-rest-framework.org/ –