ホームページ >データベース >mysql チュートリアル >より安全で読みやすい SQL クエリを実現するために SQLAlchemy の「connection.execute」で名前付きパラメータを使用するにはどうすればよいですか?
SQLAlchemy connection.execute で名前付きパラメーターを使用する
SQLAlchemy の connection.execute メソッドを使用すると、結果を配列に変換しながら SQL クエリを実行できます。地図の。最初はクエリにパラメータを含めるために文字列形式で実装されていましたが、このメソッドを拡張して、効率とセキュリティを向上させるために名前付きパラメータを利用することができます。
プロシージャの変更
手順名前付きパラメータを受け入れるコードでは、次の手順を実行できます:
利用SQL文字列を解析するSQLAlchemyのtext()関数:
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)")
名前付きパラメータをexecute()関数に渡します:
conn.execute(sql, {"x": "m", "y": "z", "e1": "%@aol.com", "e2": "%@msn.com"})
名前付きの利点パラメータ
名前付きパラメータを使用すると、次のような利点があります。
代替アプローチ
あるいは、関数を定義することもできます実行機能をラップし、名前付きパラメータを辞書として受け入れるには:
def sql_to_data(sql, values): result = [] connection = engine.connect() try: rows = connection.execute(sql, values) ... finally: connection.close() return result
このアプローチでは、クエリを次のように実行できます。
sql = 'SELECT ...' data = {'user_id': 3} results = sql_to_data(sql, data)
このメソッドでは、名前付きパラメータを使用できるようになります。元のコードのコア機能を維持します。
以上がより安全で読みやすい SQL クエリを実現するために SQLAlchemy の「connection.execute」で名前付きパラメータを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。