SQLAlchemy-Flask绑定不起作用-NameError:未定义名称'TABLE'

时间:2018-12-27 18:22:20

标签: python-3.x flask flask-sqlalchemy

我希望使用Flask-SQLAlchemy Bind连接到辅助Oracle数据库。我收到一个错误,说我想连接的表未定义,尽管它是在模型中定义的,并添加了适当的绑定配置。这是特定的错误:NameError:未定义名称“ ACCOUNT”。在尝试实际查询数据库之前,将发生此错误。

我想念什么?

我已经通过Google和StackOverflow浏览了各种示例,并将它们与我的代码进行了比较,但是在安装程序中我看不到任何异常之处。

这是相关的代码位... mysql查询有效,oracle查询无效。

init.py

from flask_sqlalchemy import SQLAlchemy

database_url = "mysql+pymysql://root:xxxx@localhost:3306/db1"
dbbind_url = "oracle://dbuser:xxxx@10.0.0.1:1521/db2" 

app.config["SQLALCHEMY_DATABASE_URI"] = database_url
app.config["SQLALCHEMY_BINDS"] = {
    'oracle': dbbind_url
     }
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False 

db = SQLAlchemy(app)

models.py

## Mysql Model (working)
class CUSTOMERS (db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255))
## Oracle Model (not working)
class ACCOUNT(db.Model):
    __tablename__ = 'ACCOUNT'
    __bind_key__ = 'oracle'
    account_id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True)
    account = db.Column(db.String(400), nullable=False)

views.py

 @app.route('/helper', methods=['GET','POST'])
 def helper_search():

 form = HelperSearchForm()

 if form.validate_on_submit():

     accountquery = form.account.data
     print (accountquery)
     accountInfo = ACCOUNT.query.filter_by(ACCOUNT=accountquery).first()

 return redirect(url_for('helper_accountdetail',account=accountInfo))

“客户”表结构(MYSQL)

 id              INT     11
 name            VARCHAR 255

“ ACCOUNT”表结构(Oracle)

 ACCOUNT_ID      NUMBER(11,0)   
 ACCOUNT         VARCHAR2(400 BYTE)     

当前结果是:      NameError:名称“ ACCOUNT”未定义

预期结果是:      查询返回结果。

0 个答案:

没有答案