تنفيذ Raw SQL في Flask-SQLAlchemy
عند العمل مع Flask-SQLAlchemy، قد تواجه سيناريو حيث تحتاج إلى تنفيذ SQL الخام الاستعلامات. يمكن أن تتضمن هذه الاستعلامات عمليات ربط جداول معقدة أو طرق عرض مضمنة. الطريقة الأولية الموضحة في السؤال باستخدام Connection.execute() قد تؤدي إلى حدوث أخطاء في البوابة. لمعالجة هذه المشكلة، دعنا نستكشف الأساليب الموصى بها في الإصدارين 1.x و2.0 من SQLAlchemy.
SQLAlchemy 2.0
لتنفيذ SQL Alchemy 2.0، يمكنك الاستفادة من طريقة Engine.connect () :
with engine.connect() as connection:
result = connection.execute(text('SELECT * FROM your_table'))
# Perform operations on the result
من خلال استخدام مدير السياق Engine.connect()، فإنك تضمن إنشاء الاتصال وإغلاقه تلقائيًا عند الخروج من السياق.
SQLAlchemy 1. x
في SQLAlchemy 1.x، يمكنك تنفيذ SQL الخام باستخدام طريقة db.engine.execute() بالتزامن مع وظيفة text():
from sqlalchemy import text
sql = text('select name from penguins')
result = db.engine.execute(sql)
names = [row[0] for row in result]
print(names)
لاحظ أن الأسلوب db.engine.execute() ينفذ الاستعلامات "بدون اتصال"، مما يعني أنه لا ينشئ جلسة قاعدة بيانات. تم إهمال هذه الطريقة في SQLAlchemy 2.0 ويجب تجنبها لتحقيق الاتساق وأفضل الممارسات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3