带Oracle的flask_sqlalchemy

时间:2019-09-25 12:55:13

标签: python html oracle sqlalchemy

我正在努力构建一个Web应用程序,并在烧瓶sqlalchemy中使用Oracle数据库。我的以下代码连接成功,但是当我运行代码时,我得到警告

SAWarning:类上的属性“ CATEGORY”似乎是一个非模式的“ sqlalchemy.sql.column()”对象;这不会成为声明性映射的一部分

我的代码正在运行,并且能够运行html,但是我感觉到它的架构名称在我的连接中丢失了。下面是我的代码。 (我没有提到凭据和主机名),是否有人知道需要在何处声明架构,或者是否有人可以帮助解决警告。

下面是我创建的代码。

 '''from flask import Flask, render_template, request
 from flask_sqlalchemy import SQLAlchemy
 from datetime import date, datetime
 from sqlalchemy import create_engine


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']= 'oracle://username:password@host:port/sid'
db = SQLAlchemy(app) 


class Master_dates(db.Model):
    DATA_DATE = db.Column(db.Integer, primary_key=True)
    LOCATN = db.Column(db.String(80))
    CATEGORY = db.column(db.String(120))


@app.route("/")
def home():
    return render_template('index.html') '''

1 个答案:

答案 0 :(得分:0)

使用sqlalchemy,我在以下代码中遇到了相同的错误

class users(db.Model):
    _id=db.Column("id", db.Integer, primary_key=True)
    name=db.Column(db.String(100))
    address=db.Column(db.String(100))
    neighborhood=db.Column(db.String(100))
    city=db.Column(db.String(100))
    phone=db.Column(db.String(100))
    document=db.Column(db.String(100))
    passwoord=db.Column(db.String(100))
    verifyPass=db.Column(db.String(100))
    rol=db.Column(db.String(100))`

当我向其添加构造函数时,在同一个类内(在您的情况下为Master_dates(db.Model))中,此问题已解决。像这样:

def __init__(self, name, address, neighborhood, city, phone, document, passwoord, rol):
    self.name=name
    self.address=address
    self.neighborhood=neighborhood
    self.city=city
    self.phone=phone
    self.document=document
    self.passwoord=passwoord
    self.rol=rol

您可以尝试将这段代码添加到您的Master_dates(db.Model)类中

def __init__(self, DATA_DATE, LOCATN, CATEGORY):
    self.DATA_DATE=DATA_DATE
    self.LOCATN=LOCATN
    self.CATEGORY=CATEGORY

我希望不要太晚在这里伸出手