获取HTML元素的值

时间:2019-10-25 17:09:28

标签: python html flask

我正在为CS50的最终项目设计一个Web应用程序。我需要将两个用户连接为朋友(例如FB)。为了连接数据库中的用户,我需要获取生成的HTML元素的Value。 我正在用烧瓶

我试图通过以下方法获取元素的值: request.form.get('value') request.args.get('value')

都不返回

<div>
   <ol>
  {% for x in range(rows|length) %}

  <form  value='{{loop.index}}' action="connect_friends" method="POST">

  <li name="friend" value='{{loop.index}}'> <a>{{rows[loop.index -1][1]}}  {{rows[loop.index -1][2]}}</a> add to  
    <select name='groups'>
      {% for x in range(5) %}
      <option value='group {{loop.index}}'>Group {{loop.index}}</option>

      {% endfor %}
    </select>
    <button class="btn btn-primary" type='submit'>Add</button>
    <br>
    <br>
  </form>

  {% endfor %}
   </ol>
@app.route("/connect_friends", methods=["POST"])
def connect_friends():
    if request.method == "POST":
        # getting the group number-- this works as expected
        group_number = request.form.get('groups')

        # getting the value of the HTML element this returns NONE
        friend = request.form.get('friend')

        # printing to check 
        print(group_number)
        print(friend)

        return apology(f"{group_number}")

    else:
        return apology("something went wrong", 403)

预期输出是 朋友不是没有人

1 个答案:

答案 0 :(得分:1)

这是因为您使用的li标记不会随请求一起传递。

您可以尝试以下方法:

<input style="display:none;" name="friend" value="{{loop.index}}" />

将输入内容放置在<form> ... </form>区域内的某个位置,您应该获得该值。