Bagaimana untuk Memaparkan Pertanyaan SQL Sebenar dalam SQLAlchemy?

Mary-Kate Olsen
Lepaskan: 2024-10-18 13:20:03
asal
806 orang telah melayarinya

How to Display Actual SQL Queries in SQLAlchemy?

Mencetak Pertanyaan SQL Sebenar dalam SQLAlchemy

Dalam SQLAlchemy, adalah penting untuk memahami cara memaparkan SQL mentah yang sepadan dengan operasi pangkalan data anda . Ini penting untuk menyelesaikan masalah, menyahpepijat dan mengoptimumkan komunikasi pangkalan data aplikasi anda.

Pendekatan Umum

Dalam kebanyakan kes, anda boleh melihat perwakilan rentetan SQL bagi pernyataan dengan mudah atau pertanyaan dengan:

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

Ini terpakai pada Pertanyaan ORM dan ungkapan pilih() mentah.

Menyusun kepada Dialek Tertentu

Jika anda perlu melihat SQL yang disusun untuk dialek atau enjin tertentu, anda boleh menggunakan kaedah compile():

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

atau tanpa enjin:

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

Inlining Parameter Terikat

Tingkah laku lalai dalam SQLAlchemy ialah menggunakan parameter ikatan dalam rentetan SQL, memastikan keselamatan dengan menghalang serangan suntikan SQL. Untuk memintas parameter terikat dan nilai sebenar sebaris, gunakan bendera literal_binds dalam compile_kwargs:

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

Untuk jenis tersuai yang tidak disokong oleh pendekatan ini, laksanakan TypeDecorator dengan kaedah process_literal_param untuk memastikan pemaparan sebaris:

<code class="python">class MyFancyType(TypeDecorator):
    def process_literal_param(self, value, dialect):
        return "my_fancy_formatting(%s)" % value

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

Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Pertanyaan SQL Sebenar dalam SQLAlchemy?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!