KeyError: ‘SQLALCHEMY_TRACK_MODIFICATIONS’ 修改无效

来源:4-10 .实现用户注册功能

西红柿卫士

2018-03-28

按老师的方法修改之后,依然报同样的错

写回答

2回答

西红柿卫士

提问者

2018-03-28

这个问题自己已经解决,没有采用之前同学所说的降低版本的方法,

试过两种办法都可行:

1.发现这个问题好像是因为app = Flask(__name__) 这句,启用一个flask框架的实例,在views 和models 是两个不同的app,所以运行views时候,就算加上

SQLALCHEMY_TRACK_MODIFICATIONS = True

也会继续报错,报的是在本app 没有注册

SQLALCHEMY_TRACK_MODIFICATIONS

所以,我只使用models的app 就解决了这个问题

# coding:utf8
import datetime
from flask import render_template,redirect,flash
from forms import LoginForm,QuestForm,RegisterForm
from models import app,db,User
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
from werkzeug.security import generate_password_hash

app.config['SECRET_KEY']="1234"
这时views.py文件头部。在views中不启用app,删掉代码直接使用models的app

2.第二种方法是我一开始使用的,很简单把models 与views 合并 ...都在views 里面完成就没事

3
3
SuperDi
优秀优秀,其实归根结底是老师定义了两个app实例。views和models中的app是相互独立的,实际编程不应该这样的
2018-11-01
共3条回复

慕斯6438358

2018-05-22

同学如果你使用的是PyCharm工具的话你可以点击进入“SQLAlchemy
”类,然后修改def get_app这个方法:

def get_app(self, reference_app=None):
    """Helper method that implements the logic to look up an
    application."""

    if reference_app is not None:
        return reference_app
#添加这个if判断到文件中然后保存,应该可以解决问题
    if self.app is not None:
        return self.app

    if current_app:
        return current_app._get_current_object()

    if self.app is not None:
        return self.app


0
0

Python Flask 构建微电影视频网站

Python 最好用轻量级框架,让你轻松胜任 Python Web 工程师

683 学习 · 663 问题

查看课程