使用flask-alchemy 过程中报错KeyError: 'SQLALCHEMY_TRACK_MODIFICATIONS'
在网上找了很多, 大多数说是必须要给 SQLALCHEMY_TRACK_MODIFICATIONS 一个默认值,尝试修改alchemy 源码,,但是还是不起作用
最后阅读源码 ,
self.app = app = db.get_app()
track_modifications = app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] 源码就是这句报错,,说key没有,,那好,我直接给你设置一个值行了吧。。
于是我再上面加了一句,
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True ..
启动,然兵乱, 还是报错,不过是另一个错误。。

看这意思是我没有初始化 sqlAlchemy ..
然后我的代码 sqlconfig.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@192.168.99.100/activiti_api'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app)
没问题啊,我初始化了啊 。。‘’
看了半天, 我去,,原来是我在启动的地方重新定义了一个app .
文件 app.py
import flask
from mysql.sqlconfig import Ip,db
app=flask.Flask(__name__) 这是一个新的app, 所以报key 错误,其实是我根本就没有初始化app.config . @app.route('/')
def index():
ips = Ip.query.all()
return flask.render_template('index.html') if __name__ == '__main__':
app.debug=True
app.run()
所以把
app=flask.Flask(__name__) 这句去掉并引入mysqlconfig 中db 就好了 。。
最后吐槽一下python 对跨文件夹的 极其不友好,是不是python 不适合大型项目开发,因为我不能把所有文件都放到一个文件夹下。。
比如上面
flask.render_template('index.html') , index.html 原来我是放到和 app.py 同级 templates包中。。但是现在必须要挪到和 mysqlconfig.py 的对应目录。。
。
其次吐槽一下python编程中友好提示,简直就是灾难,完全没有提示,调用一个方法,我完全看不出来他要我传什么参数,只有请求了才知道对错, 作为一个从java过来的程序猿,真心累。
初学者,希望大神能解解答我上面的两个疑问: 文件夹支持和编程体验 、
使用flask-alchemy 过程中报错KeyError: 'SQLALCHEMY_TRACK_MODIFICATIONS'的更多相关文章
- ORACLE搭建Stream过程中报错【error收集】
错误一:在配置完源库和目标数据库后,创建复制管理员.连接上复制管理员后,在源库执行MAINTAIN_TABLE过程: declare v_tables DBMS_UTILITY.UNCL_ARRAY; ...
- 记录一次对接XX支付SDK过程中报错问题
我们支付平台以前我不做对接上游的,偶然间替别人做"对接了XX支付的相关接口的工作".在工作过程中发现SDK和对外提供服务过程中很容易出问题.在此做个记录,为了以后相关工作中作为自己 ...
- npm 使用过程中报错问题-及npm使用
原文地址:https://blog.csdn.net/u013022210/article/details/77740519 1.以下为报错具体详情:node 8.1.2 版本问题:其他空间安装成功但 ...
- Centos 6.9安装 php5.6 过程中报错:Error: Package: php56w-mcrypt-5.6.40-1.w6.x86_64 (webtatic)
在 CentOS 6.9 系统下安装 php 5.6 的过程中,执行如下命令: yum -y install php56w-pdo php56w-xml php56w-gd php56w-gd.x86 ...
- andriod sdk模拟器安装过程中报错
andriod sdk模拟器安装过程中,出现下述错误: Failed to fetch URL http://dl-ssl.google.com/android/repository/reposito ...
- 问题-关于 in []使用过程中报错" Constant expression violates subrange bounds"
问题现象:在DELPHI中使用户in [] 时参数大于255后,报错,错误如下:Constant expression violates subrange bounds E1012常量表达式超出子界 ...
- sql server xp_cmdshell 过程中报错原因
1.net use 连接目标服务器是报错: 发生系统错误 53.找不到网络路径 可能原因是:主机装防护软件 比如 360 金山毒霸等阻止了cmd.exe程序. 将cmd.exe权限改成管理员(属性&g ...
- 安装Hive过程中报错:Unsupported major.minor version 52.0
在安装hive的过程中,我觉得我是按照教程走的,但是在启动hive时还是报错了,错误如下 Exception in thread "main" java.lang.Unsuppor ...
- 关于mdb数据库在插入过程中报错->Syntax error in INSERT INTO statement.(sql语句没问题)
今天,在做mdb数据库的增删改查的时候,代码报错插入语句有问题,但是在数据库中正常执行,苦苦探索了多次,终于找到了问题所在. 结果如图: 上面是报错 下面是解决方案 解决方案:主要原因是offic ...
随机推荐
- jmeter 在linux服务器的安装和运行;
linux环境下使用jmeter进行压力测试 标签(空格分隔): linux环境,jmeter linux环境下使用就meter进行压力测试: linux环境部署: 在Linux服务器先安装jdk: ...
- jvisual修改内存大小
jvisual(Java VisualVM)导入dump文件内存不足解决办法: 当通过jvusual调整-Xmx参数: c:/program files/java/jdk1.6/lib/visualv ...
- 牛客练习赛43-F(简单容斥)
题目链接:https://ac.nowcoder.com/acm/contest/548/F 题意:简化题意之后就是求[1,n]中不能被[2,m]中的数整除的数的个数. 思路:简单容斥题,求[1,n] ...
- centos 7 下 TFTP服务器安装
一.介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议)),是一个基于UDP 协议 69端口 实现的用于在客户机和服务器之间进行简单文件传输的协议提供不复杂 ...
- 最长公共子序列hdu1503
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1503 题意:给你两个字符串,把这两个字符串合并,使合并之后的字符串最短,并且合并之后的字符之间的相对位 ...
- 二分+最短路 UVALive - 4223
题目链接:https://vjudge.net/contest/244167#problem/E 这题做了好久都还是超时,看了博客才发现可以用二分+最短路(dijkstra和spfa都可以),也可以用 ...
- Linux之须知
1.服务器有哪些硬件? 主板,cpu,显卡,内存,硬盘,声卡,网卡 2.内存,CPU,硬盘的作用? cpu是管理与运算.内存:cpu和磁盘之间的缓冲设备,服务器关闭后,数据从内存中释放掉. CPU,电 ...
- 160. Intersection of Two Linked Lists (List;Two-Pointers)
Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...
- JS中DOM以及BOM
一.bom对象 1screen对象 console.log(screen.width);// 屏幕宽度 console.log(screen.height);// 屏幕高度 console.log(s ...
- Angular之替换根组件
一 在index.html中,替换根组件选择器 <!doctype html> <html lang="en"> <head> <meta ...