我正在为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)
预期输出是 朋友不是没有人
答案 0 :(得分:1)
这是因为您使用的li
标记不会随请求一起传递。
您可以尝试以下方法:
<input style="display:none;" name="friend" value="{{loop.index}}" />
将输入内容放置在<form> ... </form>
区域内的某个位置,您应该获得该值。