"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فيما يلي بعض خيارات العنوان، مع مراعاة تنسيق السؤال والتركيز على القضية الأساسية: **الخيار 1 (مباشر وموجز):** * **كيفية تنفيذ استعلامات SQL الأولية في Flask-SQLAlchemy؟** ** اختيار

فيما يلي بعض خيارات العنوان، مع مراعاة تنسيق السؤال والتركيز على القضية الأساسية: **الخيار 1 (مباشر وموجز):** * **كيفية تنفيذ استعلامات SQL الأولية في Flask-SQLAlchemy؟** ** اختيار

تم النشر بتاريخ 2024-11-04
تصفح:286

Here are a few title options, keeping in mind the question format and focusing on the core issue:

**Option 1 (Direct and concise):**

* **How to Execute Raw SQL Queries in Flask-SQLAlchemy?** 

**Option 2 (Highlighting the  difference between 1.x and 2.0

تنفيذ 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