python 超出瓶框架最大递归深度
python bottle framework maximum recursion depth exceeded
我正在尝试为我的 Web 应用程序添加路径,但由于某种原因出现最大递归深度错误
def runSQL(sql):
db = sqlite3.connect('zadanie.db')
c = db.cursor()
c.execute(sql)
data = c.fetchall()
db.commit()
c.close()
return data
def Subjects():
sql = "SELECT (here is my query)"
data = runSQL(sql)
return data
@app.route('/subjects')
def Subjects():
sub = template('look4.html', rows=Subjects())
return sub
我尝试将递归限制设置为更高的数字,但随后发生错误分段错误 11。
如果有任何调试建议,我将不胜感激 :)
问题不在于递归 深度。如您所见,您定义了两个名为 Subject
.
的函数
因此 Python 将 覆盖 第一个与第二个。现在第二个调用了(你认为的)前一个。但由于 Subjects
被重写,它将再次重定向到该函数,因此:
@app.route('/subjects')
def <b>Subjects</b>():
sub = template('look4.html', rows=<b>Subjects()</b>)
return sub
会陷入无限递归。解决办法是简单地重命名两者之一(可能重命名第一个更好),并更改调用,如:
def <b>subjects_query</b>():
sql = "SELECT (here is my query)"
data = runSQL(sql)
return data
@app.route('/subjects')
def subjects():
sub = template('look4.html', rows=<b>subjects_query</b>())
return sub
此外,惯例是 Python 中的函数是带下划线的小写字母,因此您最好将第二个函数重命名为 subjects
(就像我在这里所做的那样)。
我正在尝试为我的 Web 应用程序添加路径,但由于某种原因出现最大递归深度错误
def runSQL(sql):
db = sqlite3.connect('zadanie.db')
c = db.cursor()
c.execute(sql)
data = c.fetchall()
db.commit()
c.close()
return data
def Subjects():
sql = "SELECT (here is my query)"
data = runSQL(sql)
return data
@app.route('/subjects')
def Subjects():
sub = template('look4.html', rows=Subjects())
return sub
我尝试将递归限制设置为更高的数字,但随后发生错误分段错误 11。
如果有任何调试建议,我将不胜感激 :)
问题不在于递归 深度。如您所见,您定义了两个名为 Subject
.
因此 Python 将 覆盖 第一个与第二个。现在第二个调用了(你认为的)前一个。但由于 Subjects
被重写,它将再次重定向到该函数,因此:
@app.route('/subjects')
def <b>Subjects</b>():
sub = template('look4.html', rows=<b>Subjects()</b>)
return sub
会陷入无限递归。解决办法是简单地重命名两者之一(可能重命名第一个更好),并更改调用,如:
def <b>subjects_query</b>():
sql = "SELECT (here is my query)"
data = runSQL(sql)
return data
@app.route('/subjects')
def subjects():
sub = template('look4.html', rows=<b>subjects_query</b>())
return sub
此外,惯例是 Python 中的函数是带下划线的小写字母,因此您最好将第二个函数重命名为 subjects
(就像我在这里所做的那样)。