You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask运行do_search方法缺失phrase、letters位置参数报错如何解决?

问题原因
  • 核心报错根源:Flask 路由对应的视图函数仅在路由配置了路径参数时才需要声明对应入参,你的参数是从 POST 表单中读取,不需要把 phrase、letters 写在 do_search 的函数入参列表中。Flask 调用该视图函数时不会自动传递这两个参数,因此触发参数缺失的 TypeError。
  • 逻辑代码错误:你先将 set(letters) 转为字符串再调用 intersection 方法,字符串类型没有该方法,修复参数问题后仍会触发报错。
  • 模板拼写错误:HTML 模板中标题变量写为 the_tile,后端传递的变量名为 the_title,少了一个字母 t,会导致页面标题渲染为空。
修复方案

Python 代码修改

  1. 删除 do_search 函数的两个入参声明
  2. 修正交集计算逻辑,先对两个入参转集合再取交集
  3. 确保已导入 request、render_template 依赖

修正后的完整代码如下:

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/')
def flask_hello():
    return 'Please go to: http://127.0.0.1:5000/entry'

@app.route('/search4', methods=['POST'])
def do_search() -> str:
    phrase = request.form['phrase']
    letters = request.form['letters']
    common_chars = set(letters).intersection(set(phrase))
    return str(common_chars)

@app.route ('/entry')
def entry_page() -> 'html':
    return render_template('entry.html',
                            the_title='Welcome to search4letters on the web!')
    
if __name__ == '__main__':
    app.run(debug=True)

HTML 模板修改

将模板中标题的变量名修正为和后端传递的一致即可:

<h2> {{ the_title }}</h2>

内容的提问来源于stack exchange,提问作者Kingster3742

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:06:03