处理更新的搜索表单

2024-10-02 02:42:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个页面,用于呈现用户搜索的数据。我希望允许用户随时在页面一侧更改搜索凭据。出于某种原因,它只适用于“变革学校”部分。为什么代码从未到达其他搜索字段(例如,当我更改搜索类型时,不会发生任何事情,也不会打印到控制台)。请忽略缩进错误,粘贴时它被弄乱了

相关HTML:(文本字段的所有名称/id都与python代码中的名称/id匹配)

<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)

Tags: informiddatareturnrequesthtmltype
1条回答
网友
1楼 · 发布于 2024-10-02 02:42:01

我看到的第一个问题是,在您发布的html表单中没有updateSchool、updateType或updateTitle输入元素

如果我们假设它们三个都以相同的形式存在,那么您将永远无法通过第一个If块

if "updateSchool" in request.form:

检查字段是否存在于已发布的表单中,而不是是否已填充。因此,它将始终评估为真。您可能希望改用此选项:

if request.form['updateSchool']:

仅当updateSchool字段已填充时,此值才会计算为true

此外,您不需要多次调用

return render_template('testBrowse.html', data=data)

你可以把这个放在底部。不管上面的代码中发生了什么,它总是返回相同的模板和数据

相关问题 更多 >

    热门问题