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