【问题标题】:Flask throwing exception when i run my app当我运行我的应用程序时,Flask 抛出异常
【发布时间】:2020-07-20 23:28:08
【问题描述】:

我开始了一个简单的 Flask 项目,我正在使用 SLQAlchemy 来处理我的数据库。我的问题是每次我运行我的应用程序时,我都会收到以下错误:

File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\flask_sqlalchemy\__init__.py", line 137, in __init__
    track_modifications = app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
KeyError: 'SQLALCHEMY_TRACK_MODIFICATIONS'

这是我的代码:

from flask import Flask, request, jsonify
import json
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import Column, Integer, String
from sqlalchemy.schema import FetchedValue

app = Flask(__name__)

db = SQLAlchemy()

class User(db.Model):
    __tablename__ = 'users'
    __table_args__ = {'schema': 'tvtg'}

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(350), nullable=False)
    email = db.Column(db.String(350), nullable=False)
    password = db.Column(db.String(350), nullable=False)
    


@app.route('/')
def hello_world():
    print('HERE')
    peter = User.query.filter_by(name='peter').first()
    print(peter)
    return 'hello_world'


if __name__ == "__main__":
    app.run()

谁能帮我找出我做错了什么?错误的回溯对我没有多大帮助

【问题讨论】:

  • 我试过了,但仍然得到同样的错误
  • 如果您已经尝试过但没有成功,那么听起来您需要重新开始,一次添加一个部分,直到您再次遇到错误。然后你就会知道错误来自哪里,你可以为这个问题添加细节。
  • 在我看来,这个问题读起来很像“这是我的代码,这是错误,出了什么问题?”它没有显示您识别问题的努力,这可以通过重做代码并准确识别何时引入错误来完成。那么您的问题将是“这是我的代码,这是我遇到的错误,这是我的代码中导致错误出现的行,这是我检查过的可能是问题的内容,并且我还是被困住了。”

标签: python flask


【解决方案1】:

实际上,当使用flask-sqlalchemy 时,您必须为SQLALCHEMY_TRACK_MODIFICATIONS 设置一个值——即使文档另有说明(默认为None)。

是否要将其设置为 True 或 False 取决于您的用例,请参阅文档

https://flask-sqlalchemy.palletsprojects.com/en/2.x/config/

或者看看这个很棒的教程

https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database

未发布的Flask-Sqlalchemy 版本 3 设置了新的默认值False。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2021-01-04
    • 2021-10-14
    相关资源
    最近更新 更多