大家好,我有一个查询,我从网络服务获取用户电子邮件,我想过滤用户电子邮件(小写/大写)由用户在登录时提供:
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 会根据您提供的精确值进行查询,它无法在查询期间应用任何函数。因此,当您将数据插入数据库时,您需要对电子邮件进行“规范化”。
关于python - 过滤用户电子邮件时在 cassandra 中不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55651439/