大家好,我有一个查询,我从网络服务获取用户电子邮件,我想过滤用户电子邮件(小写/大写)由用户在登录时提供:
user = User.objects.filter(email_id=v1_api.payload['email_id']).first()
这里“v1_api”是 flask-restplus 中的蓝图 如果用户输入与数据库相同的电子邮件地址,此代码可以正常工作,但当我写“CAPSLOCK@gmail.com”代替“capslock”时它会抛出异常@gmail.com” 我希望它不区分大小写,无论是小写/大写的电子邮件,它应该始终将其视为小写... 在 SQLAlchemy 等其他数据库中,我们可以通过以下方式执行此操作:
from sqlalchemy import func
user = models.User.query.filter(func.lower(User.username) == func.lower("GaNyE")).first()
但在 cassandra 中我做不到,请建议我如何做......谢谢
请您参考如下方法:
在 Cassandra 中无法执行此操作 - Cassandra 会根据您提供的精确值进行查询,它无法在查询期间应用任何函数。因此,当您将数据插入数据库时,您需要对电子邮件进行“规范化”。