【问题标题】:GAE webapp2 change parameter of get method automaticallyGAE webapp2自动更改get方法的参数
【发布时间】:2015-03-25 14:34:48
【问题描述】:

您好,我使用 get 方法传递了一个标志,如下所示:

<input type='hidden' name='flag' value='1'>
<input type='submit'>

由于我使用'flag'作为标志,所以在页面自动刷新时应该更改它。

flag = cgi.escape(self.request.get('flag'))
if flag == '1':
    Some code to refresh and set flag='2'

我可以有一些适当的方法来刷新和更改参数吗?

【问题讨论】:

  • 这个问题与Google App Engine无关。你可能想给它贴上不同的标签。
  • 我在询问一些谷歌应用引擎技能......我可能会使用 ajax 或 http 重定向......但我想使用一些可在 GAE 中使用的代码

标签: google-app-engine


【解决方案1】:

您可以通过jinja2 模板呈现表单——有关如何设置的详细说明,请参阅https://cloud.google.com/appengine/docs/python/gettingstartedpython27/templates

所以如果你的模板文件包含例如

<input type='hidden' name='flag' value={( flag_value }}>
<input type='submit'>

你可以在你的处理程序中渲染它(在使用 Jinja2 环境获取 template 对象之后)

self.response.write(template.render({'flag_value': flag}))

只要你适当地更新了你的 Python 变量flag,你应该得到你要求的效果。

更新flag 的一种适当方法(假设您总是想加一,但将flag 保留为字符串,而不是整数)可能是,例如

flag = str(1 + int(flag))

【讨论】:

  • 只有python和webapp2可以吗?
  • @sounbumsong,当然,您可以在 Python 中重新实现自己的模板(毕竟,jinja2 的全 Python,这证明了这样做是可能的:-),但是您为什么想要 到,当 jinja2 在产品和 SDK 中都带有 GAE 时?无论如何,这种特定情况很简单,您可以只使用标准库 docs.python.org/3/library/string.html#template-strings ,例如使用 value=${flag_value} 作为模板字符串中的占位符,并使用 stdlib 模板字符串的 substitute 方法代替 jinja 的 render .
猜你喜欢
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 2015-03-16
  • 2013-04-05
  • 2012-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多