我目前正在使用Flask和SQLAlchemy来创建Web应用程序。
但是,我正在使用密码和用户名创建用户模型。我是否需要找到自己的库来对密码进行加密和散列,或者SQLAlchemy或Flask是否以某种方式提供这些?
此外,Flask和SQLAlchemy最常用于数据库迁移的是什么?
让我们假设我改变了我的模型。如何删除旧模式并告诉SQLAlchemy使用较新的模式?
答案 0 :(得分:2)
是的,有些库可以为你处理这个问题。他们做了多少工作取决于你。有些内容(如bcrypt或passlib)只会为您提供生成密码哈希所需的算法。其他人,比如Flask-Security,只比让你使用mixin来处理更多的事情更进一步。
对于数据库迁移,请查看alembic。它是由SQLAlchemy的主要维护者构建的迁移实用程序。
你还有另一个问题,关于Flask开发人员喜欢放弃架构的特定方式"。我不确定这意味着什么,但我想如果你进一步细节,你可能会把它作为一个单独的问题。请记住,任何询问为什么某些事情是首选的问题都应该谨慎地提出:偏好是主观的,因此,询问为什么某些事情是首选的问题也可能是主观的。