ホームページ  >  に質問  >  本文

Django の LIKE 操作。

<p>Django の Python を介してクエリを送信しようとしています。また、SQL インジェクション攻撃を防止しようとしています。 <br /><br />誰かがメッセージングがどのように機能するかを説明できますか?たとえば、LIKE クエリの例です。 </p>


<pre class="brush:php;toolbar:false;">"SELECT * FROM admin WHERE name LIKE '%myTitle%'</pre> <p>このようなクエリを構成するのは簡単です。 </p> <p><code>cursor.execute("SELECT * FROM admin WHERE name= %s", (_id, ))</code>;</p> <p>ただし、%s を挿入する場合など、テキスト内の %% を取り消してしまうなど、間違いを犯しやすくなります。 </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name LIKE %s</pre> <p>クエリが完了すると、次のようになります。 </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name 'MyTitle'</pre> <p>正しく実装されていますが、%sとLIKEの間に%%を設定したいと考えています。 </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name '%MyTitle%'</pre> <p>誰かこの問題の解決方法を説明してもらえますか? <br /><br />私の簡単なスクリプトは次のとおりです。</p><p><br /></p> <pre class="brush:php;toolbar:false;">django.db インポート接続から title = "私のタイトル" クエリ = "SELECT * FROM admin WHERE name LIKE %s" connection.cursor() をカーソルとして使用: カーソル.実行(クエ​​リ, (タイトル,))</pre> <p><br /></p>
P粉425119739P粉425119739444日前454

全員に返信(1)返信します

  • P粉293550575

    P粉2935505752023-08-03 13:21:22

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

    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
  • キャンセル返事