안녕하세요. 이번 시간에는 sqlalchemy에서 like 연산자를 쓰는 방법을 알아보겠습니다. 하나 조심해야 할 것은, 당연하게도 유저의 입력값을 믿으면 안 된다인데요. 이게 무슨 소리일까 싶습니다. like의 경우 %와 _ 등으로 인해 의도치 않은 결과가 나올 수 있습니다. 입력값 필터링을 하지 않거나 escaping을 하지 않은 경우 문제가 발생할 수도 있다는 의미입니다. 먼저 실습에 사용할 데이터입니다. 테이블 A에는 title이 aa, ba, _a, %a인 것이 있습니다. 그리고 models.py에 정의된 모델 A에 대한 클래스입니다. 저는 like 연산자를 썼습니다. Query parameter로 들어오는 keyword에 대해, 접두어가 keyword인 title을 찾습니다. 무엇이 문제일까요..
sqlalchemy 검색 결과
해당 글 2건
sqlalchemy like 연산의 %와 _를 escaping 처리해 주는 startswith, endswith, contains를 알아봅시다.
웹/FASTAPI
2023. 6. 23. 23:42
sqlalchemy nullpool과 staticpool을 설정하면서 왜 커넥션 풀이 필요한지 이해해 봅시다.
db에서 connection pool을 사용한다는 이야기는 많이 들어보셨으리라 생각합니다. fastapi에서 db를 사용할 때, sqlalchemy를 많이 쓰곤 해요. 엔진을 초기화 할 때, 연결 풀링을 하기 위해 Queuepool과 같은 것을 많이 설정하는 편입니다. 그냥 Nullpool로 받을 때와, Queuepool과 같이 커넥션을 들고 있을 때 응답 속도가 유의미하게 차이가 난다. 라는 말은 많이 들으셨을 듯 한데요. 이것은 실습으로 때워보도록 하겠습니다. 주의해야 할 점은 이 코드는 실습용으로 제작했다는 것입니다. 절대로 production에 적용하기 위해서 참고하지 말아주세요. 대신에 아. 이런 옵션이 있었구나와, connection pool이 어떤 역할을 하는 구나. 정도만 짚고 넘어가셔도 ..
웹/FASTAPI
2023. 3. 22. 01:09
최근댓글