KeyError:

2024-01-19

我一直很难处理烧瓶中的会话。自从我在本地环境中管理应用程序以来,一切都运行良好,包括烧瓶会话。但是当我已经在渲染中托管它时,我总是在每条路线中收到此错误。

[55] [ERROR] Error handling request /valle-de-guadalupe
Traceback (most recent call last):
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask/app.py", line 2525, in wsgi_app
      response = self.full_dispatch_request()
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask/app.py", line 1822, in full_dispatch_request
      rv = self.handle_user_exception(e)
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask/app.py", line 1820, in full_dispatch_request
      rv = self.dispatch_request()
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask/app.py", line 1796, in dispatch_request
      return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
    File "/opt/render/project/src/app_folder/routes/public.py", line 35, in valle_de_guadalupe
     return render_template("public/cities/valle_guadalupe.html")
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask/templating.py", line 147, in render_template
      return _render(app, template, context)
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask/templating.py", line 128, in _render
      app.update_template_context(context)
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask/app.py", line 994, in update_template_context
      context.update(func())
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask_login/utils.py", line 407, in _user_context_processor
      return dict(current_user=_get_user())
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask_login/utils.py", line 372, in _get_user
      current_app.login_manager._load_user()
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask_login/login_manager.py", line 364, in _load_user
      user = self._user_callback(user_id)
    File "/opt/render/project/src/app.py", line 52, in load_user
      return User.get_by_id(int(user_id))
    File "/opt/render/project/src/app_folder/models/models.py", line 82, in get_by_id
      return User.query.get(id)
    File "<string>", line 2, in get
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/sqlalchemy/util/deprecations.py", line 402, in warned
      return fn(*args, **kwargs)
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 947, in get
      return self._get_impl(ident, loading.load_on_pk_identity)
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 959, in _get_impl
      execution_options=self._execution_options,
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2959, in _get_impl
      load_options=load_options,
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 534, in load_on_pk_identity
      bind_arguments=bind_arguments,
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1702, in execute
      bind = self.get_bind(**bind_arguments)
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask_sqlalchemy/session.py", line 61, in get_bind
      engines = self._db.engines
    File "/opt/render/project/src/.venv/lib/python3.7/site-packages/flask_sqlalchemy/extension.py", line 629, in engines
      return self._app_engines[app]
    File "/usr/local/lib/python3.7/weakref.py", line 396, in __getitem__
      return self.data[ref(key)]
KeyError: <weakref at 0x7fc9e8267ad0; to 'Flask' at 0x7fc9e9ec5750>

index.py

from app import app
from app_folder.utils.db import db

db.init_app(app)
with app.app_context():
    db.create_all()

if __name__ == "__main__":
    app.run(
        debug = False,
        port = 5000
)

app.py

from flask import Flask
"""Flask SqlAlchemy"""
from flask_sqlalchemy import SQLAlchemy
"""Flask Login"""
from flask_login import LoginManager
"""Dot Env"""
from dotenv import load_dotenv
"""App Folder Routes"""
from app_folder.handlers.stripe_handlers import stripe_error
from app_folder.handlers.web_handlers import web_error
from app_folder.models.models import User
from app_folder.routes.admin import admin
from app_folder.routes.public import public
from app_folder.routes.users import users
from app_folder.utils.db import db

"""Imports"""
import os
import stripe

load_dotenv()
"""config app"""
app = Flask(__name__, 
        static_url_path="",
        template_folder="app_folder/templates", 
        static_folder="app_folder/static")
app.config['SECRET_KEY'] = os.getenv("SECRET_KEY")
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv("SQLALCHEMY_DATABASE_VERSION")+os.getenv("SQLALCHEMY_USERNAME")+":"+os.getenv("SQLALCHEMY_PASSWORD")+"@"+os.getenv("SQLALCHEMY_SERVER")+"/"+os.getenv("SQLALCHEMY_DATABASE")
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = os.getenv("SQLALCHEMY_TRACK_MODIFICATIONS")

"""blueprints"""
app.register_blueprint(stripe_error)
app.register_blueprint(web_error)
app.register_blueprint(admin)
app.register_blueprint(public)
app.register_blueprint(users)

SQLAlchemy(app)

login_manager = LoginManager(app)

""" stripe """
stripe_keys = {
  'secret_key': os.getenv("STRIPE_SECRET_KEY"),
  'publishable_key': os.getenv("STRIPE_PUBLISHABLE_KEY")
}
stripe.api_key = stripe_keys['secret_key']

"""Login Manager"""
@login_manager.user_loader
def load_user(user_id):
        return User.get_by_id(int(user_id))

"""Teardown"""
@app.teardown_appcontext
def shutdown_session(exception=None):
   db.session.remove()

无论我使用哪条路线,在处理会话时都会遇到相同的错误,但在本例中使用此路径。

公共.py

"""routes"""
@public.route("/", methods=["GET", "POST"])
def index():
    return redirect(url_for('public.valle_de_guadalupe'))

"""cities"""
@public.route("/valle-de-guadalupe", methods=["GET", "POST"])
def valle_de_guadalupe():
    return render_template("public/cities/valle_guadalupe.html")

我不知道其他人是否也发生过这种情况。


通常最好删除尽可能多的额外组件并确定一个最小的例子 https://stackoverflow.com/help/minimal-reproducible-example会产生错误,否则通常很难提供帮助。

也就是说,我认为该错误表明db (SQLAlachemy() from flask-sqlalchemy)不存在inited with app.

我不确定是什么db是从进口的app_folder.utils.db,但看来您可能需要致电db.init_app(app).

相关地,该行SQLAlchemy(app)没有被分配。也许你想把它分配给db?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KeyError: 的相关文章

随机推荐

  • Spring框架中的依赖注入和控制反转是什么?

    依赖注入 和 控制反转 经常被认为是使用 Spring 框架开发 Web 框架的主要优点 如果可能的话 有人可以用一个非常简单的术语解释它是什么吗 Spring 有助于创建松散耦合的应用程序 因为依赖注入 在 Spring 中 对象定义它们
  • C++ 自省技术,类似于 python

    C 中是否有像 Python 中那样的自省技术 例如 我想获取有关特定对象的更多信息 而不需要通过头文件或引用 cpp 引用 我是问了一个正确的问题 还是走错了方向 Update 根据以下答案 这个答案与我的问题相关 如何向 C 应用程序添
  • Blaze:{{#if}} 语句中的逻辑(Not、Or、And...)

    有没有办法在 if 语句中进行逻辑运算 我希望有这样的事情 if A B some html if 我在 blaze 中找不到有关逻辑的文档 所以我猜它不受支持 我只是想确定一下 抱歉问了一个相当愚蠢的问题 正如 Billy Bob 所建议
  • Express.js:如何获取 ip 地址并渲染视图?

    我真的认为这应该很容易 但是当我渲染一个jade模板时 我也想抓取ip地址 我的代码看起来像这样 app js app get index home index js exports home function req res res re
  • C# 中的外部 IP 地址

    在 C 中获取外部 IP 地址的最简单方法是什么 框架内没有内置的方法来执行此操作 因为很难确定外部 公共 IP 地址是什么 当然 这是假设您的 IP 在某个网关后面经过 NAT 一种方法是抓取类似的网站http www whatismyi
  • 解释错误:ISO C++ 禁止声明没有类型的“Personlist”

    我有一个类将处理我之前创建的另一个类的对象数组 效果很好 当我尝试创建列表类的对象时出现问题 这是列表类的标题 ifndef personlistH define personlistH include Person h include
  • 如何从当前月份中选择当前日期

    我想检索当月 1 30 之间的数据 我正在使用 MSACCESS Dbase 来执行此操作 下面是我正在尝试的查询 SELECT count usercategory as category count usercategory FROM
  • VS Code 扩展安全如何处理?

    我已经使用 VS Code 一年左右了 我不知道 VS Code Extension 安全性是如何处理的 我对这样的事情感到震惊 Markdown 预览增强 https marketplace visualstudio com items
  • CRA + React Leaflet:编译失败

    我刚刚开始一个全新的项目create react app并设置react leaflet正如他们的文档所建议的here https react leaflet js org docs start installation 我正在尝试使用这个
  • pyspark:自动填充隐式缺失值

    我有一个数据框 user day amount a 2 10 a 1 14 a 4 5 b 1 4 你看 最大值day是4 最小值是1 我要填0 for amount列中所有用户的所有缺失天数 因此上面的数据框将变为 user day am
  • Safari 和 iOS 上的 Html5(音频)

    我正在开发一款 Web 应用程序 但与 Apple 设备和 PC 上的 Safari 浏览器存在兼容性问题 Html5 音频标签
  • 假人的 Getters \ Setters

    我一直在尝试了解 getter 和 setter 但它没有被理解 我读过JavaScript Getter 和 Setter http ejohn org blog javascript getters and setters and 定义
  • 可靠地验证 JWS 证书链和域

    我正在 Node JS 中编写后端代码来验证来自 Google SafetyNet API 的 JWS 我很惊讶没有为此找到现成的模块 因此我开始使用可用的库来研究 JWS 的一些简单验证 首先 谷歌表示需要执行以下步骤 从 JWS 消息中
  • 如何在Windows服务器上运行html文件中的php代码?

    我已使用 htaccess 文件和以下代码AddType 应用程序 x httpd php html htm 它在本地工作正常 但当我将文件上传到服务器上时 它工作不正常 我的所有页面都有 html 扩展名 您需要添加到 PHP exe 的
  • 递归泛型类型

    是否可以在 C 中定义引用自身的泛型类型 例如 我想定义一个 Dictionary 将其类型保存为 TValue 对于层次结构 Dictionary
  • echo 输出与预期的格式化输出不同

    I m using the following formatting for echo 它应该输出粗体和下划线的文本 但不是将其设置为粗体 而是提供 更亮 的颜色变体 并将带下划线的代码 4 视为青色 从而产生浅青色文本 我在 Window
  • 为什么 Enumerator.MoveNext 在与 using 和 async-await 一起使用时不能按我的预期工作?

    我想通过一个枚举List
  • document.title 中的播放符号 (▶) 被压扁

    添加到问题为什么 的 HTML 符号在 document title 中不起作用 https stackoverflow com questions 16930905 why does the html symbol for not wor
  • 使用外部 Python 程序在 OpenOffice 上加载文档

    我正在尝试创建一个 python 程序 使用 pyUNO 来对 OpenOffice 计算表进行一些更改 我之前已在 接受 模式下启动 OpenOffice 以便能够从外部程序进行连接 显然 应该很简单 import uno get the
  • KeyError:

    我一直很难处理烧瓶中的会话 自从我在本地环境中管理应用程序以来 一切都运行良好 包括烧瓶会话 但是当我已经在渲染中托管它时 我总是在每条路线中收到此错误 55 ERROR Error handling request valle de gu