फ्लास्क-एसक्यूएलकेमी में रॉ एसक्यूएल को निष्पादित करना
फ्लास्क-एसक्यूएलकेमी के साथ काम करते समय, आपको एक ऐसे परिदृश्य का सामना करना पड़ सकता है जहां आपको रॉ एसक्यूएल को निष्पादित करने की आवश्यकता होती है प्रश्न. इन प्रश्नों में जटिल तालिका जोड़ या इनलाइन दृश्य शामिल हो सकते हैं। कनेक्शन.एक्सक्यूट() का उपयोग करके प्रश्न में प्रदर्शित प्रारंभिक दृष्टिकोण गेटवे त्रुटियों को ट्रिगर कर सकता है। इस समस्या को हल करने के लिए, आइए SQLAlchemy संस्करण 1.x और 2.0 में अनुशंसित तरीकों का पता लगाएं। इंजन.कनेक्ट() विधि:
कनेक्शन के रूप में इंजन.कनेक्ट() के साथ: परिणाम = कनेक्शन.निष्पादित(पाठ('अपने_टेबल से * चुनें')) # परिणाम पर संचालन करें
engine.connect() संदर्भ प्रबंधक का उपयोग करके, आप सुनिश्चित करते हैं कि कनेक्शन स्थापित हो गया है और संदर्भ से बाहर निकलने पर स्वचालित रूप से बंद हो गया है।with engine.connect() as connection:
result = connection.execute(text('SELECT * FROM your_table'))
# Perform operations on the result
SQLAlchemy 1.x में, आप text() फ़ंक्शन के संयोजन में db.engine.execute() विधि का उपयोग करके कच्चे SQL को निष्पादित कर सकते हैं:
from SQLAlchemy आयात पाठ एसक्यूएल = टेक्स्ट ('पेंगुइन से नाम चुनें') परिणाम = db.engine.execute(sql) नाम = [पंक्ति[0] परिणाम में पंक्ति के लिए] print(names)
ध्यान दें कि db.engine.execute() विधि "कनेक्शन रहित" क्वेरी निष्पादित करती है, जिसका अर्थ है कि यह डेटाबेस सत्र स्थापित नहीं करता है। इस विधि को SQLAlchemy 2.0 में अस्वीकार कर दिया गया है और निरंतरता और सर्वोत्तम प्रथाओं के लिए इससे बचा जाना चाहिए।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3