Flask TypeError:sportCategory()正好接受1个参数(给定0)

Flask TypeError:sportCategory()正好接受1个参数(给定0),flask,flask-sqlalchemy,typeerror,Flask,Flask Sqlalchemy,Typeerror,上面的代码将不会运行。我几乎尝试了我所知的一切。它可能有什么问题 下面是上面代码所指的内容 from flask import Flask, render_template, request, redirect, url_for, jsonify from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from database_setup import Base, SportCategory,

上面的代码将不会运行。我几乎尝试了我所知的一切。它可能有什么问题

下面是上面代码所指的内容

from flask import Flask, render_template, request, redirect, url_for, 
jsonify
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from database_setup import Base, SportCategory, MenuItem

app = Flask(__name__)
engine = create_engine('sqlite:///sportmenu.db',connect_args= 
{'check_same_thread':False},)
Base.metadata.bind = engine

DBSession = sessionmaker(bind=engine)
session = DBSession()

@app.route('/')
@app.route('/catalog/')
def sportCategory(id):
sport = 
session.query(SportCategory).order_by(SportCategory.name).filter_by(id 
= category_id)
items = 
session.query(MenuItem).order_by(MenuItem.date.desc()).filter_by(id = 
menu_item_id)
return render_template('menu.html',category = sport, items = items)

您看到的错误是由这三行引起的

class SportCategory(Base):
__tablename__ = 'category'

id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)


class MenuItem(Base):
__tablename__ = 'menu_item'

id = Column(Integer, primary_key=True)
name = Column(String(80), nullable=False)
description = Column(String(1000))
price = Column(String(8))
date = Column(Integer)
sport_id = Column(Integer, ForeignKey('category.id'))
sport = relationship(SportCategory)
前两个声明没有变量的路由。但是
def
声明了一个路由处理程序,该处理程序需要一个路由处理程序。简单的解决方法是将前两个更改为

@app.route('/')
@app.route('/catalog/')
def sportCategory(id):
处理没有身份证的情况

@app.route('/<id>')
@app.route('/catalog/<id>')
@app.route('/')
def noSportCategory():