【问题标题】:Need Help: AttributeError: "SQLAlchemy" object has no attribute 'Models'需要帮助:AttributeError:“SQLAlchemy”对象没有属性“模型”
【发布时间】:2020-02-21 04:56:18
【问题描述】:

AttributeError: sqlalchemy object has no attribute "Models" 正在发生错误。我已经安装了所有要求,例如 pip install sqlalchemy、flask-sqlalchemy、psycopy2-binary。这个文件名是 create.py

import os

from flask import Flask, render_template, request
from models import *

app = Flask(__name__)

app.config["SQLALchemy_DATABASE_URI"] = os.getenv("DATABASE_URL")
app.config["SQLALchemy_TRACK_MODIFICATIONS"] = False
db.init_app(app)

def main():
   db.create_all()
if __name__ == "__main__":
    with app.app_context():
        main()

这个文件是models.py

 from flask_sqlalchemy import SQLAlchemy

db=SQLAlchemy()

class Flight(db.Models):
    __tablename__ = "flights"
    id = db.Column(db.Integer, primary_key=True)
    origin = db.Column(db.String, nullable=False)
    destination = db.Column(db.String, nullable=False)
    duration = db.Column(db.Integer, nullable=False)

class Passenger(db.Models):
    __tablename__ = "passengers"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    flight_id = db.Column(db.Integer, db.ForeignKey("flights.id", 
nullable=False))

输出是:

Traceback(最近一次调用最后一次): 文件“create.py”,第 4 行,在 从模型导入 * 文件“D:\web\flaskrun\models.py”,第 5 行,在 飞行类(db.Models): AttributeError:“SQLAlchemy”对象没有属性“模型”

【问题讨论】:

标签: python sqlalchemy flask-sqlalchemy


【解决方案1】:

我得到了同样的错误,因为有打字的错误我使s小字符串方法是数据类型,如

db.String()--->correct

db.string()--->Incorrect

name=db.Column(db.String(),nullable=False)

希望这有助于某人

【讨论】:

    【解决方案2】:

    应该是db.Model 而不是db.Models

    【讨论】:

      【解决方案3】:

      正如the flask-sqlalchemy docs 中提到的,您的模型需要从db.Model 派生,没有尾随s

      此外,它还提供了一个名为 Model 的类,它是可用于声明模型的声明性基础:

      【讨论】:

      • 文件 "C:\Users\areb fg\Anaconda3\lib\site-packages\sqlalchemy\sql\schema.py",第 2711 行,在 init self._validate_dialect_kwargs (dialect_kw) 文件“C:\Users\areb fg\Anaconda3\lib\site-packages\sqlalchemy\sql\base.py”,第 289 行,在 _validate_dialect_kwargs 中“名为 _,得到 '%s' " % k TypeError: Additional arguments should be named _, got 'nullable'
      • 因为代码中似乎还有一些其他问题,请检查整个回溯(在您发送的 sn-p 中,我看不到 db.Model 的问题)
      猜你喜欢
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 2016-01-10
      • 2019-04-27
      • 2021-12-27
      • 1970-01-01
      相关资源
      最近更新 更多