Я использую Flask-SQLAlchemy для запроса из базы данных пользователей; однако пока
user = models.User.query.filter_by(username="ganye").first()
вернется
<User u'ganye'>
делать
user = models.User.query.filter_by(username="GANYE").first()
возвращается
None
Мне интересно, есть ли способ запросить базу данных без учета регистра, чтобы второй пример все равно возвращал
<User u'ganye'>
python
flask
flask-sqlalchemy
Ганье
источник
источник
filter_by
методом, в котором индексируется столбец имени пользователя?Улучшение ответа @plaes, этот сделает запрос короче, если вы укажете только столбцы, которые вам нужны:
user = models.User.query.with_entities(models.User.username).\ filter(models.User.username.ilike("%ganye%")).all()
Приведенный выше пример очень полезен в случае, если нужно использовать Flask jsonify для целей AJAX, а затем в вашем javascript получить доступ к нему с помощью data.result :
from flask import jsonify jsonify(result=user)
источник
ты можешь сделать
user = db.session.query(User).filter_by(func.lower(User.username)==func.lower("GANYE")).first()
Или вы можете использовать функцию ilike
user = db.session.query(User).filter_by(User.username.ilike("%ganye%")).first()
источник