반응형
대소 문자를 구분하지 않는 Flask-SQLAlchemy 쿼리
사용자 데이터베이스에서 쿼리하기 위해 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'>
필터에서 lower
또는 upper
함수를 사용하여 수행 할 수 있습니다 .
from sqlalchemy import func
user = models.User.query.filter(func.lower(User.username) == func.lower("GaNyE")).first()
또 다른 옵션은 다음을 사용하여 검색하는 ilike
것입니다 like
.
.query.filter(Model.column.ilike("ganye"))
@plaes의 답변을 개선하면 열만 지정하면 쿼리가 짧아집니다.
user = models.User.query.with_entities(models.User.username).\
filter(models.User.username.ilike("%ganye%")).all()
위의 예제는 AJAX 목적으로 Flask의 jsonify를 사용하고 자바 펼쳐에서 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()
참고 URL : https://stackoverflow.com/questions/16573095/case-insensitive-flask-sqlalchemy-query
반응형
'IT' 카테고리의 다른 글
필수가 아닌 RenderSection이 어떻게 알 수 있습니까? (0) | 2020.09.09 |
---|---|
GWT에서 콘솔에 인쇄하는 방법 (0) | 2020.09.09 |
"내 다른 차는 cdr"이란 무엇을 의미합니까? (0) | 2020.09.09 |
SVG에서 변환 원점을 설정하는 방법 (0) | 2020.09.09 |
여러 도메인을 폴더 액세스 제어 허용 출처 (0) | 2020.09.09 |