python - 运行 Flask 应用程序中的致命 Stackoverflow
问题描述
我的烧瓶应用程序中出现了致命的:stackoverflow 错误。它发生在特定函数中,但似乎指向 app.run 语句。包含错误的函数是这样的:
@login_required
@flask_app.route('/newgame', methods=['GET', 'POST'])
def newGame():
user = current_user
game_form = NewBetForm()
if game_form.is_submitted():
player = user.address
privKey = user.privKey
ethPwd = user.ethPwd
amt = game_form.amount.data
team_name = game_form.teamName.data
player2 = game_form.player2.data
player2team = game_form.player2Team.data
user2 = dbsession.query(User).filter_by(username=player2).first()
try:
contract = createBet(player,user2.address,amt,privKey,ethPwd)
contract.functions.createPlayer(w3.toChecksumAddress(player),amt,team_name).call()
game = Game(player1=player,player1_team=team_name,
player2_team=player2team,addr=contract.address,active=True,amount=amt)
invite = Invite(player1_from=user,player2_to=user2,game_id=game,amount=amt,team=player2team)
dbsession.add(invite)
dbsession.commit()
dbsession.add(game)
dbsession.commit()
flash("Successfully entered bet game")
return redirect(url_for('viewGame', game_id=game.id))
except:
flash("There was an issue with this bet. Please try again")
return redirect(url_for('newGame'))
return render_template('games/new_game.html', form=game_form)
我得到的错误的最后一行(完整的堆栈跟踪将在这篇文章的后面)是这样的:
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask/app.py", line 943 in run
File "app.py", line 6 in <module>
这是我看到它指向 app.py 文件第 6 行的 app.run 语句的地方:
flask_app.run(debug=True,host='localhost',threaded=True,port=port)
我不确定错误实际发生在哪里 - run 语句会导致 stackoverflow 错误对我来说没有意义。以下是完整的错误跟踪:
Current thread 0x0000700000a04000 (most recent call first):
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 406 in trunc
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 521 in <genexpr>
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 521 in _repr_params
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 484 in __repr__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/exc.py", line 352 in _sql_message
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/exc.py", line 76 in __str__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 294 in _assert_active
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 407 in _connection_for_bind
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1129 in _connection_for_bind
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1123 in connection
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3286 in _connection_from_session
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3308 in _get_bind_args
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3293 in _execute_and_instances
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3271 in __iter__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3198 in one_or_none
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3229 in one
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 282 in load_on_pk_identity
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 208 in load_on_ident
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 979 in load_scalar_attributes
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/state.py", line 660 in _load_expired
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 182 in get_from_identity
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 987 in _identity_lookup
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 1012 in _get_impl
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 933 in get
File "/Users/pasquarella4292/Documents/newbet/app/pyapp/models.py", line 48 in load_user
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask_login/login_manager.py", line 321 in reload_user
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask_login/login_manager.py", line 359 in _load_user
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask_login/utils.py", line 335 in _get_user
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask_login/utils.py", line 26 in <lambda>
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/local.py", line 306 in _get_current_object
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/local.py", line 321 in __repr__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 406 in trunc
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 521 in <genexpr>
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 521 in _repr_params
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 484 in __repr__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/exc.py", line 352 in _sql_message
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/exc.py", line 76 in __str__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 294 in _assert_active
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 407 in _connection_for_bind
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1129 in _connection_for_bind
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1123 in connection
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3286 in _connection_from_session
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3308 in _get_bind_args
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3293 in _execute_and_instances
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3271 in __iter__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3198 in one_or_none
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3229 in one
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 282 in load_on_pk_identity
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 208 in load_on_ident
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 979 in load_scalar_attributes
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/state.py", line 660 in _load_expired
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/attributes.py", line 677 in get
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/attributes.py", line 276 in __get__
File "/Users/pasquarella4292/Documents/newbet/app/pyapp/models.py", line 38 in __repr__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 406 in trunc
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 521 in <genexpr>
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 521 in _repr_params
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 484 in __repr__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/exc.py", line 352 in _sql_message
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/exc.py", line 76 in __str__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 294 in _assert_active
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 407 in _connection_for_bind
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1129 in _connection_for_bind
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1123 in connection
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3286 in _connection_from_session
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3308 in _get_bind_args
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3293 in _execute_and_instances
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3271 in __iter__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3198 in one_or_none
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3229 in one
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 282 in load_on_pk_identity
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 208 in load_on_ident
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 979 in load_scalar_attributes
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/state.py", line 660 in _load_expired
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 182 in get_from_identity
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 987 in _identity_lookup
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 1012 in _get_impl
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 933 in get
File "/Users/pasquarella4292/Documents/newbet/app/pyapp/models.py", line 48 in load_user
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask_login/login_manager.py", line 321 in reload_user
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask_login/login_manager.py", line 359 in _load_user
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask_login/utils.py", line 335 in _get_user
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask_login/utils.py", line 26 in <lambda>
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/local.py", line 306 in _get_current_object
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/local.py", line 321 in __repr__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 406 in trunc
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 521 in <genexpr>
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 521 in _repr_params
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 484 in __repr__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/exc.py", line 352 in _sql_message
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/exc.py", line 76 in __str__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 294 in _assert_active
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 407 in _connection_for_bind
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1129 in _connection_for_bind
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1123 in connection
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3286 in _connection_from_session
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3308 in _get_bind_args
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3293 in _execute_and_instances
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3271 in __iter__
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3198 in one_or_none
...
Thread 0x0000700000501000 (most recent call first):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/selectors.py", line 376 in select
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socketserver.py", line 236 in serve_forever
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/serving.py", line 612 in serve_forever
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/serving.py", line 777 in inner
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 864 in run
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 916 in _bootstrap_inner
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 884 in _bootstrap
Thread 0x00007fff754cd000 (most recent call first):
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/_reloader.py", line 164 in run
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/_reloader.py", line 273 in run_with_reloader
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/werkzeug/serving.py", line 812 in run_simple
File "/Users/pasquarella4292/.local/share/virtualenvs/newbet-EG4I_zLE/lib/python3.6/site-packages/flask/app.py", line 943 in run
File "app.py", line 6 in <module>
编辑
显示 load_user 方法:
@login.user_loader
def load_user(id):
return dbsession.query(User).get(int(id))
解决方案
推荐阅读
- spring - 单个界面中的多个 Spring Data CrudRepository
- sql - 如何在同一个 select 语句中执行联合和左连接?
- javascript - 为什么 getComputedStyle 不为父级隐藏的元素返回 display:none?
- excel - 如何从不同的单元格中找到具有修改值的单元格?
- typescript - 在 IBM loopback 4 中,我可以将 getter 和 setter 用于模型属性吗?
- visual-studio-code - 在 VSCode WebView 扩展中允许弹出窗口的解决方法
- php - 如何在 Symfony 4 中禁用返回其他实体引用?
- android - 如果位置 ImageView1 = ImageView2,则拖放和消失 ImageView
- rust - 如何在 src 中布局我的 Rust 模块以便在我的应用程序中访问
- sharepoint - 通过 Microsoft Graph 访问共享的 OneDrive 文件?