从SQLalchemy过渡到psycopg2

时间:2016-05-02 02:45:14

标签: postgresql flask flask-sqlalchemy psycopg2

我一直在使用Flask和SQLAlchemy,但我已经过渡到使用psycopg2插入并返回数据库中的值。我想知道我的Model.py和db对象中的类应该如何更改,因为我不再使用SQLAlchemy。我甚至还需要这些吗?

设置db对象:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
db.SQLALCHEMY(app) 

我的模型文件中的类示例:

class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True, index=True)
    username = db.Column(db.String(64), unique=True, index=True)
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
    zipAddress = db.Column(db.String(64))

1 个答案:

答案 0 :(得分:0)

据我了解你想用postgresql代替sqlite吧?如果是,那么您只需更改SQLALCHEMY_DATABASE_URI = 'postgresql uri即可。 如果您不想使用它,那么您需要设置您的psycopg2 设置。但我建议使用SQLAlchemy。您可以继续使用posgresql来保存数据,如果要继续使用sqlalchemy,则无法删除该文件(Models.py)和数据库实例。 使用sqlalchemy,您可以轻松地对表进行更改并根据需要添加新表。 最后一件事并不意味着你在使用sqlalchemy时不能使用postgresql。 SQLalchemy只是一个框架,并使代码库适用于sqlitemysqlpostgresql所有您需要更改DATABASE_URI然后它将为您创建表。 我建议您查看flask-sqlalchemy