실제 값을 사용하여 SQLAlchemy에서 SQL 쿼리 검색
SQLAlchemy를 사용할 때 다음을 포함하여 실행 중인 실제 SQL 쿼리를 인쇄하는 것이 유용할 수 있습니다. 추상 바인드 매개변수가 아니라 사용되는 특정 값입니다.
SQLAlchemy에서 이를 달성하는 방법은 다음과 같습니다.
<code class="python">print(str(statement))</code>
이 간단한 접근 방식은 ORM 쿼리 개체와 select() 또는 다른 진술 유형. 특정 방언이나 엔진으로 컴파일된 쿼리를 얻으려면 적절한 인수를 compile()에 전달할 수 있습니다.
<code class="python">print(statement.compile(someengine)) print(statement.compile(dialect=postgresql.dialect()))</code>
ORM 쿼리 객체를 사용할 때 먼저 .statement 접근자에 액세스하여 compile() 메서드를 가져옵니다.
<code class="python">statement = query.statement print(statement.compile(someengine))</code>
바인딩된 매개변수를 최종 문자열에 인라인해야 하는 경우 SQLAlchemy에서는 이에 대한 지원이 제한되어 있습니다. compile()을 호출할 때 'literal_binds' 플래그를 사용할 수 있습니다:
<code class="python">print(s.compile(compile_kwargs={"literal_binds": True}))</code>
그러나 이는 정수 및 문자열과 같은 단순 유형에만 작동합니다. 사용자 정의 유형의 경우 TypeDecorator.process_literal_param 메소드와 함께 TypeDecorator를 사용하여 사용자 정의 형식을 제공해야 합니다.
<code class="python">print( tab.select().where(tab.c.x > 5).compile( compile_kwargs={"literal_binds": True}) )</code>
이 접근 방식을 사용하면 결과 SQL 쿼리 문자열에서 사용자 정의 유형의 인라인 렌더링이 가능합니다.
위 내용은 실제 값으로 SQLAlchemy에서 SQL 쿼리를 인쇄하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!