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

时间:2018-06-24 04:43:02

标签: flask flask-sqlalchemy typeerror

stack.sh

上面的代码将无法运行。我已经尽我所能尝试了几乎所有东西。可能是什么问题?

这也是上面的代码所指的。

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)

1 个答案:

答案 0 :(得分:1)

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

@app.route('/')
@app.route('/catalog/')
def sportCategory(id):

前两个声明没有变量的路由。但是def声明了一个期望的路由处理程序。简单的解决方法是将前两个更改为

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

您可能想另外提供一个

@app.route('/')
def noSportCategory():

处理没有ID的情况。