Flask中TypeError: 'ImmutableMultiDict'对象不可调用错误的解决方法
Flask路由中TypeError: 'ImmutableMultiDict' object is not callable的解决方法
错误核心原因
这个错误100%是因为你把request.form这个ImmutableMultiDict对象当成函数调用了——比如写成request.form('username')或者request.form(),而不是正确的属性访问形式。
修复步骤
- 打开你的
/register路由代码,定位所有使用request.form的代码行 - 将错误的调用方式替换为两种正确形式:
- 若确定字段必传,直接通过键索引:
username = request.form['username'] - 若字段可选,用
get()方法并可设置默认值:email = request.form.get('email', '')
- 若确定字段必传,直接通过键索引:
代码示例对比
错误代码片段
from flask import Flask, request app = Flask(__name__) @app.route('/register', methods=['POST']) def register(): # 错误:把request.form当函数调用 username = request.form('username') password = request.form('password') return "注册成功"
修复后代码片段
from flask import Flask, request app = Flask(__name__) @app.route('/register', methods=['POST']) def register(): # 正确:用键索引或get方法获取参数 username = request.form['username'] password = request.form.get('password') if not username or not password: return "用户名和密码不能为空", 400 return "注册成功"
额外注意事项
如果你的Postman请求体是JSON格式(而非表单格式),需要改用request.get_json()来获取数据,同时确保请求头设置了Content-Type: application/json。
内容的提问来源于stack exchange,提问作者Ashutosh Yadav
相关产品推荐
相关产品推荐

