flask-sqlalchemy中出现的 KeyError: ‘SQLALCHEMY_TRACK_MODIFICATIONS‘错误

2024-03-19 00:08

本文主要是介绍flask-sqlalchemy中出现的 KeyError: ‘SQLALCHEMY_TRACK_MODIFICATIONS‘错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自https://www.cnblogs.com/String-Lee/p/10061675.html

关于flask-sqlalchemy中出现的 KeyError:SQLALCHEMY_TRACK_MODIFICATIONS错误

image

网上资料都是说因为用了2.2/2.3版本的flask-sqlalchemy的缘故

给出的解决方案都是很扯淡的回退了一下版本,回到2.0.
 
 

经过研究 发现原因很显然不是这样子 而是代码从一开始逻辑就不对

研究我们的代码

app/__init__.pyfrom flask import Flaskapp = Flask(__name__)
app.debug = Truefrom app.home import home as home_blueprint
from app.admin import admin as admin_blueprintapp.register_blueprint(home_blueprint)
app.register_blueprint(admin_blueprint,url_prefix="/admin")
app/models.pyfrom flask import Flask
from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 配置数据库
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123456@127.0.0.1:3306/blog"
# 如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False# 绑定app至SQLAlchemy
db = SQLAlchemy(app)# 会员模型
class User(db.Model):id = db.Column(db.Integer, primary_key=True)......if __name__ == "__main__":db.create_all()

app/init.pyapp/models.py 中 两次分别实例化 Flask 类,生成 app 对象。

app.config[“SQLALCHEMY_TRACK_MODIFICATIONS”] = False 是在模型文件中设置的。

但是模型中的 app 对象并不是Flask运行时的 那个 app 对象

只是用来初始化数据库时临时用到的 app 对象

所以在访问页面的时候会报错 KeyError:'SQLALCHEMY_TRACK_MODIFICATIONS’

应该修改成这样

app/__init__.pyfrom flask import Flaskapp = Flask(__name__)
app.debug = Truefrom app.home import home as home_blueprint
from app.admin import admin as admin_blueprintapp.register_blueprint(home_blueprint)
app.register_blueprint(admin_blueprint,url_prefix="/admin")# 配置数据库
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123456@127.0.0.1:3306/blog"
# 如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = Falsefrom app.models import dbdb.init_app(app)
app/models.pyfrom flask import Flask
from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()# 会员模型
class User(db.Model):id = db.Column(db.Integer, primary_key=True)......if __name__ == "__main__":app = Flask(__name__)# 配置数据库app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123456@127.0.0.1:3306/blog"# 如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False# 绑定app至SQLAlchemydb = SQLAlchemy(app)db.create_all()

这篇关于flask-sqlalchemy中出现的 KeyError: ‘SQLALCHEMY_TRACK_MODIFICATIONS‘错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/824128

相关文章

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd