例如下面的?User
?模型,在數據庫中查詢時并不會區分大小寫
class User(db.Model):__tablename__ = 'users'id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(64), unique=True, index=True)password_hash = db.Column(db.String(128))
這時,如果想要在查詢時區分大小寫,就需要對表進行一定的改動,即讓表中指定字段不區分大小寫
方法是在?db.String
?中添加?collation='NOCASE'
?描述,即修改為以下模型即可
class User(db.Model):__tablename__ = 'users'id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(64, collation='NOCASE'), unique=True, index=True)password_hash = db.Column(db.String(128))
之后在查詢時的?username
?字段就不會區分大小寫了
注:對于?collation
?屬性的修改,flask-migration 并不會檢測出,需要手動寫 migrate 語句