Django 的 LIKE 操作。
P粉425119739
2023-08-02 15:55:17
<p>我正在嘗試透過 Django 的 Python 發送查詢,我還試圖阻止任何 SQL 注入攻擊。 <br /><br />有人可以解釋如何進行訊息傳遞嗎?例如,LIKE 查詢的範例。 </p><p><br /></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;">from django.db import connection
title = "myTitle"
query = "SELECT * FROM admin WHERE name LIKE %s"
with connection.cursor() as cursor:
cursor.execute(query, (title,))</pre>
<p><br /></p>
請檢查這個頁面。
What is the SQL ''LIKE" equivalent on Django ORM queries?
那是 Django 的 ORM 方式。
https://docs.djangoproject.com/en/4.2/topics/db/sql/
#這是 Django 處理原始查詢的方式。
您展示的不是 Django 程式碼,而是純粹的 Python-MySQL 程式碼。
對於 Python-MySQL,您可以按照您所做的方式處理,並且它會處理引號和注入問題。
但是您應該這樣做。
title_like 是一個模糊匹配的字串。
mysql like string which contains %