【问题标题】:Passing a variable into Python from Jinja2 Drop-down menu从 Jinja2 下拉菜单将变量传递给 Python
【发布时间】:2014-05-05 08:20:52
【问题描述】:

我是一个编程新手。如何将带有 Jinja2 模板的下拉菜单中的变量传递到我的 Python 2.7 代码中?我在 Google App Engine 上使用 webapp2 框架。

我的代码目前如下所示:

class AccountNew(Handler):
    def get(self):
        activities = ['Select one', 'Camping', 'Hiking', 'Fishing']
        self.render('account-new.html', activities = activities)

    def post(self):
        acct_name = self.request.get('acct_name')
        activity = self.request.get('activity')
        self.write(acct_name)
        self.write(activity)

我的 Jinja2 模板名为“account-new.html”,如下所示:

<form method="post">

  <label>
    <div>Account Name</div>
    <input type="text" name="acct_name" value="{{ acct_name }}">
  </label>

  <label>
    <div>Parent</div>
    <select>
      {% for activity in activities %}
          <option value="{{ activity }}">{{ activity }}</option>
      {% endfor %}
    </select>
  </label>

  <input type="submit">

</form>

acct_name 字符串被传回,但 activity 字符串似乎以空字符串的形式返回。任何见解将不胜感激。

【问题讨论】:

    标签: google-app-engine python-2.7 drop-down-menu jinja2 webapp2


    【解决方案1】:

    您已将“名称”属性从选择元素中移除。应该是这样的:

    <select name="activity">
      {% for activity in activities %}
          <option value="{{ activity }}">{{ activity }}</option>
      {% endfor %}
    </select>
    

    【讨论】:

    • 完美运行。谢谢!
    最近更新 更多