sqlalchemy-flask应用程序中的属性错误(键),无法连接到数据库

时间:2020-07-16 08:14:01

标签: python flask sqlalchemy

这是我第一次问有关stackoverflow的问题。在数据科学训练营中,我错过了一堂课,我正在录音中,并试图跟着老师讲解,向我们展示如何在Flask应用程序中引用sqlite数据库,但是我无法运行示例。我能够运行不引用sqlite的flask应用程序。例如,当我尝试运行以此开头的python代码时:

const x = document.getElementById("days");
const y = document.getElementById("days2");
const result = document.getElementById("result");


function val(){
 
  if((x.value !== null && x.value !== '') && (y.value !== null && y.value !== '')){
    if(isFinite(x.value) && isFinite(y.value)){
      result.value = (Number(x.value) > Number(y.value)) ? x.value : y.value;
    }else{
      result.value = 'no value'
    }
  }
  
}

我遇到了一个错误提示

import numpy as np

import sqlalchemy
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import Session
from sqlalchemy import create_engine, func

from flask import Flask, jsonify


#################################################
# Database Setup
#################################################
engine = create_engine("sqlite:///titanic.sqlite")

# reflect an existing database into a new model
Base = automap_base()
# reflect the tables
Base.prepare(engine, reflect=True)

# Save reference to the table
Passenger = Base.classes.passenger

#################################################
# Flask Setup
#################################################
app = Flask(__name__)

我猜这意味着它找不到“ passenger”表,但是不确定它是否存在,因此我检查了数据库。在课堂录音中,我的教授无需修改任何内容即可运行此代码。任何帮助都非常感谢。谢谢!

3 个答案:

答案 0 :(得分:1)

乘客表在 titanic.sqlite 文件中的拼写是否与您引用的方式相同?

您可以在具有相同依赖项的 jupyter notebook 中运行以下代码。

engine = create_engine("sqlite:///titanic.sqlite")
Base = automap_base()
Base.prepare(engine, reflect=True)

# This should return the table names
Base.classes.keys()

答案 1 :(得分:0)

我的问题是我需要导入os:)

答案 2 :(得分:0)

engine = create_engine("sqlite:///titanic.sqlite")

问题出在上面: 添加完整路径,如“c:/user/myname/desktop/myapp/titanic.sqlite”,而不仅仅是“titanic.sqlite”