使用flask-alchemy 過程當中報錯KeyError: 'SQLALCHEMY_TRACK_MODIFICATIONS'

在網上找了不少, 大多數說是必需要給 SQLALCHEMY_TRACK_MODIFICATIONS 一個默認值,嘗試修改alchemy 源碼,,可是仍是不起做用 html

最後閱讀源碼 ,java

 self.app = app = db.get_app()
 track_modifications = app.config['SQLALCHEMY_TRACK_MODIFICATIONS']

源碼就是這句報錯,,說key沒有,,那好,我直接給你設置一個值行了吧。。
因而我再上面加了一句,
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True ..
啓動,然兵亂, 仍是報錯,不過是另外一個錯誤。。

 

看這意思是我沒有初始化 sqlAlchemy ..python

而後個人代碼 sqlconfig.pymysql

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)

沒問題啊,我初始化了啊 。。‘’sql

看了半天, 我去,,原來是我在啓動的地方從新定義了一個app .編程

文件 app.pyflask

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()

 

因此把 api

app=flask.Flask(__name__) 這句去掉並引入mysqlconfig 中db 就行了 。。 
最後吐槽一下python 對跨文件夾的 極其不友好,是否是python 不適合大型項目開發,由於我不能把全部文件都放到一個文件夾下。。
好比上面
flask.render_template('index.html') , index.html 原來我是放到和 app.py 同級 templates包中。。可是如今必需要挪到和 mysqlconfig.py 的對應目錄。。。 其次吐槽一下python編程中友好提示,簡直就是災難,徹底沒有提示,調用一個方法,我徹底看不出來他要我傳什麼參數,只有請求了才知道對錯, 做爲一個從java過來的程序猿,真心累。初學者,但願大神能解解答我上面的兩個疑問: 文件夾支持和編程體驗 、
相關文章
相關標籤/搜索