亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Django 的 LIKE 操作。
P粉425119739
P粉425119739 2023-08-02 15:55:17
0
1
620
<p>我正在嘗試透過 Django 的 Python 發(fā)送查詢,我還試圖阻止任何 SQL 注入攻擊。 <br /><br />有人可以解釋如何進(jìn)行訊息傳遞嗎?例如,LIKE 查詢的範(fàn)例。 </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 時(shí),取消文字中的 %% 很容易出錯(cuò),例如。 </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name LIKE %s</pre> <p>當(dāng)查詢完成時(shí),它會(huì)像這樣。 </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name 'MyTitle'</pre> <p>它正在正確地實(shí)現(xiàn),但我希望在 %s 和 LIKE 之間設(shè)置 %%。 </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name '%MyTitle%'</pre> <p>有人可以解釋如何解決這個(gè)問題嗎? <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>
P粉425119739
P粉425119739

全部回覆(1)
P粉293550575

請檢查這個(gè)頁面。

What is the SQL ''LIKE" equivalent on Django ORM queries?

那是 Django 的 ORM 方式。

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

#

這是 Django 處理原始查詢的方式。

>>> query = "SELECT * FROM myapp_person WHERE last_name = %s" % lname
>>> Person.objects.raw(query)

您展示的不是 Django 程式碼,而是純粹的 Python-MySQL 程式碼。

對於 Python-MySQL,您可以按照您所做的方式處理,並且它會(huì)處理引號和注入問題。

但是您應(yīng)該這樣做。


title_like = f"%{title}%"
cursor.execute(query, (title_like,))

title_like 是一個(gè)模糊匹配的字串。

mysql like string which contains %

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板