Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 过滤用户电子邮件时cassandra中不区分大小写_Python_Cassandra_Case Insensitive - Fatal编程技术网

Python 过滤用户电子邮件时cassandra中不区分大小写

Python 过滤用户电子邮件时cassandra中不区分大小写,python,cassandra,case-insensitive,Python,Cassandra,Case Insensitive,大家好,我有一个查询,我从web服务获取用户电子邮件,我想在其中过滤用户电子邮件,无论是用户在登录时提供的电子邮件(小写/大写): user = User.objects.filter(email_id=v1_api.payload['email_id']).first() 这里的“v1_api”是flask rest中的蓝图,如果用户输入与数据库相同的电子邮件地址,但在我写入时它会抛出异常,那么此代码工作正常”CAPSLOCK@gmail.com“代替”capslock@gmail.com"

大家好,我有一个查询,我从web服务获取用户电子邮件,我想在其中过滤用户电子邮件,无论是用户在登录时提供的电子邮件(小写/大写):

user = User.objects.filter(email_id=v1_api.payload['email_id']).first()
这里的“v1_api”是flask rest中的蓝图,如果用户输入与数据库相同的电子邮件地址,但在我写入时它会抛出异常,那么此代码工作正常”CAPSLOCK@gmail.com“代替”capslock@gmail.com" 我想让它不区分大小写,或者在小写/uppper的电子邮件中,它应该始终将其视为小写。。。 在其他数据库(如SQLAlchemy)中,我们可以这样做:

from sqlalchemy import func
user = models.User.query.filter(func.lower(User.username) == func.lower("GaNyE")).first()

但在cassandra中,我无法做到这一点,请建议我如何做到这一点……谢谢

在cassandra中无法做到这一点-根据您提供的精确值,cassandra查询无法在查询过程中应用任何函数。因此,当您将数据插入数据库时,需要对电子邮件进行“规范化”。

如果您是从python输入数据,为什么不在python中转换成小写,然后将其插入数据库?@lordingtar这不是关于我如何将其存储到数据库,而是关于用户登录时如何编写超级邮箱,因此,如果用户电子邮件完全匹配,则我要编辑的部分仅为大写,因此我不需要这样做想抛出一个错误,我只是想让用户登录的情况insensitive@lordingtar请告诉我,在Cassandray中从db进行过滤时,我们是否有办法将电子邮件改为小写。在插入或检查之前,您必须将其改为小写。Cassandra没有提供在入口点转换的方法。当您阅读用户电子邮件时,只需使用
email=method\u获取电子邮件。lower()