اذهب إلى المحتوى

السؤال

نشر

أقوم بإستخدام SQLAlchemy ولكن أريد أن أقوم بتنفيذ جملة SQL خام بدون الإعتماد على التوابع الموجودة في SQLAlchemy

حاولت أن أنفذ الكود التالي:

connection = db.session.connection()
connection.execute( <sql> )

ولكن لم يعمل الكود السابق، لذلك أريد أن أعرف كيف أقوم بتنفيذ جملة raw SQL في فلاسك Flask بإستخدام SQLAlchemy؟

Recommended Posts

  • 1
نشر

يمكنك أن تستعمل التابع execute من الكائن engine، على النحو التالي:

rows = db.engine.execute("SELECT * FROM userss")

كما يمكنك تمرير بعض العوامل والقيم لتفادي ثغرة SQL Injection :

result = db.session.execute('SELECT * FROM users WHERE age > :val', {'val': 18})

ويمكنك عمل commit في حالة أردت أن تقوم بتنفيذ جملة تعدل على قاعدة البيانات عليك أن تستخدم التابع execution_options:

rows = db.engine.execute("<sql>").execution_options(autocommit=True))

أو يمكنك أن تقوم بإستخدام التابع text:

from sqlalchemy import text

sql = text('select name from users')
result = db.engine.execute(sql)

names = [row[0] for row in result]
print(names)

يمكنك الحصول على مزيد من المعلومات عن SQLAlchemy من خلال هذه المقالة:

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...