SQLAlchemy의 매개변수 처리 실행()
SQLAlchemy의 Connection.execute() 함수를 활용하여 선택한 결과를 맵 배열로 변환할 수 있습니다. 소규모 데이터 세트에 대한 편리한 접근 방식입니다. 그러나 format()을 사용하여 SQL 쿼리에 매개변수를 추가하면 보안 문제가 발생할 수 있습니다.
매개변수 처리 메커니즘을 개선하려면 다음 기술 활용을 고려하세요.
SQLAlchemy.sql.text 사용 () 매개변수화된 SQL 문자열
다음을 사용하여 매개변수화된 SQL 문자열을 생성합니다. SQLAlchemy.sql.text():
sql = text( "SELECT users.fullname || ', ' || addresses.email_address AS title " "FROM users, addresses " "WHERE users.id = addresses.user_id " "AND users.name BETWEEN :x AND :y " "AND (addresses.email_address LIKE :e1 " "OR addresses.email_address LIKE :e2)")
매개변수를 키워드 인수로 지정
매개변수화된 SQL 문자열을 실행하는 동안 매개변수 값을 키워드로 제공하여 실행합니다. () 함수:
conn.execute(sql, {"x": "m", "y": "z", "e1": "%@aol.com", "e2": "%@msn.com"}).fetchall()
사용자 정의에 동적 매개변수 통합 함수
원하는 경우 매개변수 값에 대한 값이라는 사전을 생성하여 매개변수 전달을 지원하도록 이 예에서 사용자 정의 함수인 __sql_to_data()를 수정합니다.
def __sql_to_data(sql, values): ... conn.execute(sql, values)
다음과 같이 할 수 있습니다. 그런 다음 다음과 같은 매개변수 사전을 사용하여 함수를 호출합니다.
sql = 'SELECT ...' data = {'user_id': 3} results = __sql_to_data(sql, data)
이러한 접근 방식을 채택하면 보안을 강화할 수 있습니다. SQLAlchemy의 실행() 함수에서 매개변수 처리의 유연성을 제공합니다.
위 내용은 SQLAlchemy의 `execute()` 함수에서 매개 변수를 어떻게 안전하게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!