Я не понимаю, что может быть не так с этим кодом для рендеринга страниц.
def post(self):
acct = self.request.get('account')
pw = self.request.get('password')
que = db.Query(User)
que = que.filter('account =', acct)
que = que.filter('password =', pw)
results = que.fetch(limit = 1)
values = { }
newval = dict(values)
newval['path'] = self.request.path
if len(results) > 0:
path = os.path.join(os.path.dirname(__file__), 'templates/sites.htm')
self.response.out.write(template.render(path, {}))
Я звоню из формы входа, расположенной на странице с именем "loginscreen.htm" .
Когда приложение достигает этой части кода:
if len(results) > 0:
path = os.path.join(os.path.dirname(__file__), 'templates/sites.htm')
self.response.out.write(template.render(path, {}))
и пытается перенаправить на 'sites.htm' , страница 'sites.htm' правильно отображается, но в адресной строке по-прежнему показывает:
'http://localhost:8080/login' ("/ login" направляет входящий запрос от "loginscreen.htm"), когда ' http://localhost:8080/sites.htm' должен
будет показано вместо
Основная проблема заключается в том, что если я перезагрузлю страницу, появится диалоговое окно «Подтверждение повторной отправки формы» , позволяющее пользователям снова отправить форму.
Но если я заменю
path = os.path.join(os.path.dirname(__file__), 'templates/sites.htm')
self.response.out.write(template.render(path, {}))
по
self.redirect('sites.htm')
в адресной строке отображается 'http://localhost:8080/sites.htm' правильно.
Так что не так с кодом?
Извините, если я сделал этот вопрос более сложным, чем должен быть.
Заранее спасибо!