从Jinja2下拉菜单将变量传递给Python

bho*_*ben 4 google-app-engine jinja2 python-2.7 webapp2 drop-down-menu

我是一个编程新手.如何将带有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)
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

acct_name字符串被传递回,但活动串似乎又回来了一个空字符串.任何见解将不胜感激.

Gwy*_*ell 11

您已将"name"属性从select元素中删除.应该是这样的:

<select name="activity">
  {% for activity in activities %}
      <option value="{{ activity }}">{{ activity }}</option>
  {% endfor %}
</select>
Run Code Online (Sandbox Code Playgroud)