首页 > 解决方案 > builtins.TypeError 类型错误

问题描述

我已经尝试了 100 次,我不知道这段代码有什么问题。有人请帮我解决这个问题或告诉我我在下面的代码中做错了什么。

每次我收到:

builtins.TypeError TypeError:getCategoryItems() 缺少 1 个必需的位置参数:'cat_id'

代码:

@app.route('/')
def getAllItems():
    return redirect(url_for('getCategoryItems', category_name='ab', cat_id=1))


@app.route('/<string:category_name>/items/')
def getCategoryItems(category_name, cat_id):
    id = cat_id;
    items = session.query(Item).filter_by(category_id=id).all()
    output = ''
    for item in items:
        output += item.title + '</br>'
    return output

标签: pythonpython-3.xflaskflask-sqlalchemy

解决方案


您不需要 pass category_name,您只需要类别 id。类别名称应包含在从数据库中获取的每个项目中。

您收到错误,因为cat_id在调用函数时未定义def getCategoryItems(category_name, cat_id)

但是,如果您想真正让所有物品都可以使用,我建议您:

@app.route('/')
def getAllItems():
  items = session.query(Item).all()
  ...

有关更多信息,请查看flask-sqlalchemy 文档


推荐阅读