Django の LIKE 操作。
P粉425119739
P粉425119739 2023-08-02 15:55:17
0
1
412

Django の Python を介してクエリを送信しようとしています。また、SQL インジェクション攻撃を防止しようとしています。

誰かがメッセージングがどのように機能するかを説明できますか?たとえば、LIKE クエリの例です。


"SELECT * FROM admin WHERE name LIKE '%myTitle%'

このようなクエリを構成するのは簡単です。

cursor.execute("SELECT * FROM admin WHERE name= %s", (_id, ));

ただし、%s を挿入する場合など、テキスト内の %% を取り消してしまうなど、間違いを犯しやすくなります。

SELECT * FROM admin WHERE name LIKE %s

クエリが完了すると、次のようになります。

SELECT * FROM admin WHERE name 'MyTitle'

正しく実装されていますが、%sとLIKEの間に%%を設定したいと考えています。

SELECT * FROM admin WHERE name '%MyTitle%'

誰かこの問題の解決方法を説明してもらえますか?

私の簡単なスクリプトは次のとおりです。


django.db インポート接続から title = "私のタイトル" クエリ = "SELECT * FROM admin WHERE name LIKE %s" connection.cursor() をカーソルとして使用: カーソル.実行(クエリ, (タイトル,))


P粉425119739
P粉425119739

全員に返信 (1)
P粉293550575

こちらのページをご確認ください。

Django ORM クエリで同等の SQL ''LIKE'' とは何ですか?

これが Django の ORM の方法です。

https://docs.djangoproject.com/en/4.2/topics/db/sql/

これは、Django が生のクエリを処理する方法です。

リーリー

あなたが示しているのは Django コードではなく、純粋な Python-MySQL コードです。

Python-MySQL の場合は、上記の方法で実行でき、引用符とインジェクションの問題が処理されます。

しかし、そうすべきです。


リーリー

title_like はあいまい一致文字列です。

mysql のような %

を含む文字列
いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!