我有一个页面,用于呈现用户搜索的数据。我想允许用户随时在页面一侧更改搜索凭据。出于某种原因,它只适用于“改变学校”。部分。为什么代码永远不会到达其他搜索字段(例如,当我更改搜索类型时,没有任何反应,没有任何内容打印到控制台)。请忽略缩进错误,粘贴它时搞砸了!
相关HTML :(文本字段的所有名称/ id' s肯定与python代码中的名称相匹配)
<form id="update" name="update" method="post" action="/find-it/">
<input type="submit" value="search" id="enter" form="update">
PYTHON:
if request.method == 'POST':
if "updateSchool" in request.form:
print('school changed')
school = request.form['updateSchool']
data = updateSchool(school)
return render_template('testBrowse.html', data=data)
elif "updateType" in request.form:
print('type changed')
newType = request.form['updateType']
data = updateType(newType)
print('getting to update type')
return render_template('testBrowse.html', data=data)
elif "updateTitle" in request.form:
print('title changed')
newTitle request.form['updateTitle']
data = updateTitle(newTitle)
return render_template('testBrowse.html', data=data)
return render_template('testBrowse.html', data=data)
答案 0 :(得分:1)
我看到的第一个问题是你发布的html格式中没有updateSchool,updateType或updateTitle输入元素。
如果我们假设它们中的所有三个都以相同的形式存在,那么你将永远不会超过第一个if块。
if "updateSchool" in request.form:
检查已发布的表单中是否存在该字段,而不是填充该字段。所以它总会评估为真。您可能想要使用它:
if request.form['updateSchool']:
仅在填充updateSchool字段时才会评估为真。
此外,您不需要多次调用
return render_template('testBrowse.html', data=data)
你可以把它留在底部。无论上面的代码发生了什么,它总是返回相同的模板和数据。