"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं SQLALCHEMY के `कनेक्शन.सेक्यूट` के साथ सुरक्षित और अधिक पठनीय SQL प्रश्नों के लिए नामित मापदंडों का उपयोग कैसे कर सकता हूं?

मैं SQLALCHEMY के `कनेक्शन.सेक्यूट` के साथ सुरक्षित और अधिक पठनीय SQL प्रश्नों के लिए नामित मापदंडों का उपयोग कैसे कर सकता हूं?

2025-03-24 को पोस्ट किया गया
ब्राउज़ करें:487

] शुरू में क्वेरी में मापदंडों को शामिल करने के लिए स्ट्रिंग फ़ॉर्मेटिंग के साथ लागू किया गया, इस विधि को अधिक दक्षता और सुरक्षा के लिए नामित मापदंडों का उपयोग करने के लिए बढ़ाया जा सकता है। SqlAlchemy का पाठ () SQL स्ट्रिंग को पार्स करने के लिए फ़ंक्शन:

How Can I Use Named Parameters with SQLAlchemy's `connection.execute` for Safer and More Readable SQL Queries?
sql = text ("उपयोगकर्ताओं का चयन करें। fullname || ',', ' । "%@msn.com"})

को नियोजित करना कई लाभ प्रदान करता है। स्ट्रिंग फॉर्मेटिंग के साथ जुड़ा हुआ है, जो SQL इंजेक्शन कमजोरियों को जन्म दे सकता है। कोई भी कार्यक्षमता को निष्पादित करने के लिए एक फ़ंक्शन को परिभाषित कर सकता है और नामित मापदंडों को एक शब्दकोश के रूप में स्वीकार कर सकता है:

def sql_to_data (sql, मान): परिणाम = [] कनेक्शन = इंजन.कनेक्ट () कोशिश करना: ROWS = CONNACT.EXECUTE (SQL, VALUES) ... अंत में: connection.close () वापसी परिणाम
  1. इस दृष्टिकोण के साथ, क्वेरीज़ के साथ निष्पादित किया जा सकता है:

    sql = 'सेलेक्ट ...' डेटा = {'user_id': 3} परिणाम = sql_to_data (sql, data)
    sql = text("SELECT users.fullname || ', ' || addresses.email_address AS title FROM users, addresses WHERE users.id = addresses.user_id AND users.name BETWEEN :x AND :y AND (addresses.email_address LIKE :e1 OR addresses.email_address LIKE :e2)")
    यह विधि मूल कोड की मुख्य कार्यक्षमता को बनाए रखते हुए नामित मापदंडों के उपयोग को सक्षम बनाती है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3