Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mencetak Pertanyaan SQL dalam SQLAlchemy dengan Nilai Sebenar?

Bagaimana untuk Mencetak Pertanyaan SQL dalam SQLAlchemy dengan Nilai Sebenar?

Mary-Kate Olsen
Lepaskan: 2024-10-18 13:24:30
asal
1046 orang telah melayarinya

How to Print SQL Queries in SQLAlchemy with Actual Values?

Mendapatkan kembali Pertanyaan SQL dalam SQLAlchemy dengan Nilai Sebenar

Apabila menggunakan SQLAlchemy, ia boleh berguna untuk mencetak pertanyaan SQL sebenar yang sedang dilaksanakan, termasuk nilai khusus yang digunakan, bukannya parameter ikatan abstrak.

Begini cara untuk mencapai ini dalam SQLAlchemy:

<code class="python">print(str(statement))</code>
Salin selepas log masuk

Pendekatan mudah ini berfungsi untuk kedua-dua objek ORM Query dan pilih() atau jenis pernyataan lain. Jika anda ingin mendapatkan pertanyaan seperti yang dikompilasi kepada dialek atau enjin tertentu, anda boleh menghantar argumen yang sesuai untuk menyusun():

<code class="python">print(statement.compile(someengine))
print(statement.compile(dialect=postgresql.dialect()))</code>
Salin selepas log masuk

Apabila menggunakan objek ORM Query, mula-mula akses pengakses .statement ke dapatkan kaedah compile():

<code class="python">statement = query.statement
print(statement.compile(someengine))</code>
Salin selepas log masuk

Dalam kes di mana anda perlu menyelaraskan parameter terikat ke dalam rentetan akhir, SQLAlchemy mempunyai sokongan terhad untuk ini. Anda boleh menggunakan bendera 'literal_binds' apabila memanggil compile():

<code class="python">print(s.compile(compile_kwargs={"literal_binds": True}))</code>
Salin selepas log masuk

Walau bagaimanapun, ini hanya berfungsi untuk jenis mudah seperti integer dan rentetan. Untuk jenis tersuai, anda perlu menggunakan TypeDecorator dengan kaedah TypeDecorator.process_literal_param untuk menyediakan pemformatan tersuai:

<code class="python">print(
    tab.select().where(tab.c.x > 5).compile(
        compile_kwargs={"literal_binds": True})
)</code>
Salin selepas log masuk

Pendekatan ini membenarkan pemaparan sebaris jenis tersuai dalam rentetan pertanyaan SQL yang terhasil.

Atas ialah kandungan terperinci Bagaimana untuk Mencetak Pertanyaan SQL dalam SQLAlchemy dengan Nilai Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan