>  Q&A  >  본문

Django의 LIKE 연산.

<p>Django의 Python을 통해 쿼리를 보내려고 하며, SQL 삽입 공격도 방지하려고 합니다. <br /><br />메시지가 어떻게 작동하는지 설명해 주실 수 있나요? 예를 들어 LIKE 쿼리의 예입니다.


<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에서 가져오기 연결 제목 = "내 제목" query = "SELECT * FROM admin WHERE 이름 LIKE %s" Connection.cursor()를 커서로 사용: cursor.execute(query, (제목,))</pre> <p><br /></p>
P粉425119739P粉425119739465일 전481

모든 응답(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
  • 취소회신하다