You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask应用报错:'SQLAlchemy'对象无'model'属性,附代码求助

解决Flask-SQLAlchemy的AttributeError: 'SQLAlchemy' object has no attribute 'model'问题

这个错误其实是个很容易犯的拼写小失误——你把SQLAlchemy的模型基类名称写错了:db.model应该改成db.Model(首字母M要大写)。

Flask-SQLAlchemy里规定,所有自定义的数据库模型都必须继承自db.Model这个类,小写的model并不是SQLAlchemy实例的属性,所以才会抛出这个找不到属性的错误。

修正后的完整代码

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:password@localhost/flask-movie'
db = SQLAlchemy(app)

# 关键修正:将db.model改为db.Model
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    
    def __init__(self, username, email):
        self.username = username
        self.email = email
    
    def __repr__(self):
        return '<User %r>' % self.username

额外小提醒

  • Flask-SQLAlchemy的核心类基本都是驼峰命名规范,比如Model、Column、String这些,写的时候注意大小写别搞错。
  • 如果你用的是Flask-SQLAlchemy 3.x及以上版本,更推荐用应用工厂模式配合db.init_app(app)来初始化数据库,不过你当前的写法在旧版本中是可以正常运行的。

内容的提问来源于stack exchange,提问作者Ezrqn Kemboi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:34:34