Melaksanakan Raw SQL dalam Flask-SQLAlchemy
Apabila bekerja dengan Flask-SQLAlchemy, anda mungkin menghadapi senario di mana anda perlu melaksanakan SQL mentah pertanyaan. Pertanyaan ini boleh melibatkan gabungan jadual yang kompleks atau paparan sebaris. Pendekatan awal yang ditunjukkan dalam soalan menggunakan connection.execute() boleh mencetuskan ralat get laluan. Untuk menangani isu ini, mari kita terokai pendekatan yang disyorkan dalam SQLAlchemy versi 1.x dan 2.0.
SQLAlchemy 2.0
Untuk melaksanakan SQL mentah dalam SQLAlchemy 2.0, anda boleh memanfaatkan kaedah engine.connect():
<code class="python">with engine.connect() as connection: result = connection.execute(text('SELECT * FROM your_table')) # Perform operations on the result</code>
Dengan menggunakan pengurus konteks engine.connect(), anda memastikan sambungan diwujudkan dan ditutup secara automatik apabila keluar dari konteks.
SQLAlchemy 1.x
Dalam SQLAlchemy 1.x, anda boleh melaksanakan SQL mentah menggunakan kaedah db.engine.execute() bersama-sama dengan fungsi text():
<code class="python">from sqlalchemy import text sql = text('select name from penguins') result = db.engine.execute(sql) names = [row[0] for row in result] print(names)</code>
Perhatikan bahawa kaedah db.engine.execute() melaksanakan pertanyaan "tanpa sambungan," bermakna ia tidak mewujudkan sesi pangkalan data. Kaedah ini ditamatkan dalam SQLAlchemy 2.0 dan harus dielakkan untuk konsistensi dan amalan terbaik.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan dan memfokuskan pada isu teras: **Pilihan 1 (Terus dan ringkas):** * **Bagaimana untuk Melaksanakan Pertanyaan SQL Mentah dalam Flask-SQLAlchemy?** **Pilihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!