python - 表单输入返回无
问题描述
我想从我的 /user/conference uri 中获取输入。
这是我的控制器:
@main.route('/user/conference', methods=["POST", "GET"])
@login_required
def user_search_conference():
user = []
conferences = []
tags = []
name = request.form.get('name')
print(name)
if name != "":
user = db.session.query(UsersInfo).filter(
UsersInfo.name == name).one()
conferences = db.session.query(Conference).filter(
Conference.creatoruser == user.authenticationid).all()
else:
conferences = db.session.query(Conference).all()
return render_template('search_conference.html', conferences=conferences, len=len(conferences))
这是我的html表单:
<div>
<form method="POST" action="/user/conference">
<div class="field">
<div class="control">
<input class="input is-large" type="text" name="name" placeholder="Conference Host">
</div>
</div>
<button class="button is-block is-info is-large is-fullwidth">Search</button>
</form>
</div>
我添加了 print 进行调试,并且 name 变量返回 None ,因为我的数据库无法响应。为什么表格没有给我?
解决方案
我认为你的问题在这里
<input class="input is-large" type="text" name="name" placeholder="Conference Host">
这是缺少id
属性。所以将此行更改为
<input class="input is-large" type="text" name="name" id="name" placeholder="Conference Host">
它应该工作。
原因是该属性name
仅用于识别表单input
字段中的字段,即仅在浏览器端。但是该id
属性包含在对服务器的请求中。所以你似乎和这个用户有同样的问题。
推荐阅读
- python-3.x - 我可以在循环外的特定点强制进入 while True 或 if/elif/else 循环吗?
- javascript - 模型揭示了foundation-zurb中的ajax调用问题
- python - 无法重命名由 .sum() 函数生成的数据框的列名
- python - Python中的“socket.error:[Errno 48]地址已在使用中”
- azure - Azure 选择查询变得越来越慢
- python - 我该如何选择regex - 捕获并替换在两个字符串之间找到的字符串
- arrays - 当单元格值 = 0 VBA 时将单元格地址添加到数组
- html - 将 3 个不同宽度的 DIV 水平对齐以覆盖整个容器
- python - 使用正则表达式在 Python 3 中查找第一个括号内的内容