【问题标题】:Transitioning from SQLalchemy to psycopg2从 SQLalchemy 过渡到 psycopg2
【发布时间】:2016-08-26 17:43:34
【问题描述】:

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

设置数据库对象:

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))

【问题讨论】:

    标签: postgresql flask flask-sqlalchemy psycopg2


    【解决方案1】:

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

    【讨论】:

    • 没错。我不确定是否应该继续使用 SQLAlchemy,因为我已经创建了我的 postgres 表。我知道 SQLAlchemy 基于我的 Model.py 中的类创建数据库,那么该文件不再需要了吗?如果我不使用 SQLAlchemy,还有一个目的是为了拥有一个 db 对象吗?
    • 谢谢你。如果我将它与 postgresql 和 psycopg2 一起使用,SQLAlchemy 提供的主要好处是什么。
    • @Brosef SQLAlchemy 是一个软件层,它会带来比其价值更多的复杂性。扔掉它并使用正确的 SQL。
    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 2015-05-07
    • 2012-10-18
    • 2021-01-15
    • 2011-11-06
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多