>백엔드 개발 >파이썬 튜토리얼 >실제 값으로 SQLAlchemy에서 SQL 쿼리를 인쇄하는 방법은 무엇입니까?

실제 값으로 SQLAlchemy에서 SQL 쿼리를 인쇄하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-18 13:24:301048검색

How to Print SQL Queries in SQLAlchemy with Actual Values?

실제 값을 사용하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.