Djangos LIKE-Operation.
P粉425119739
P粉425119739 2023-08-02 15:55:17
0
1
479
<p>Ich versuche, eine Abfrage über Djangos Python zu senden, und ich versuche auch, SQL-Injection-Angriffe zu verhindern. <br /><br />Kann jemand erklären, wie die Nachrichten funktionieren? Zum Beispiel ein Beispiel für eine LIKE-Abfrage. </p><p><br /></p> <pre class="brush:php;toolbar:false;">"SELECT * FROM admin WHERE name LIKE '%myTitle%'</pre> <p>Abfragen wie diese lassen sich ganz einfach konfigurieren. </p> <p><code>cursor.execute("SELECT * FROM admin WHERE name= %s", (_id, ))</code>;</p> <p>Aber es ist leicht, Fehler zu machen, indem man zum Beispiel beim Einfügen von %s das %% im Text streicht. </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name LIKE %s</pre> <p>Wenn die Abfrage abgeschlossen ist, sieht sie so aus. </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name 'MyTitle'</pre> <p>Es wird korrekt implementiert, aber ich möchte, dass %% zwischen %s und LIKE gesetzt wird. </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name '%MyTitle%'</pre> <p>Kann jemand erklären, wie man dieses Problem löst? <br /><br />Mein einfaches Skript sieht wie folgt aus:</p><p><br /></p> <pre class="brush:php;toolbar:false;">aus django.db-Importverbindung title = „meinTitel“ query = „SELECT * FROM admin WHERE name LIKE %s“ mit Connection.cursor() als Cursor: Cursor.execute(query, (title,))</pre> <p><br /></p>
P粉425119739
P粉425119739

Antworte allen(1)
P粉293550575

请检查这个页面。

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,您可以按照您所做的方式处理,并且它会处理引号和注入问题。

但是您应该这样做。


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

title_like 是一个模糊匹配的字符串。

mysql like string which contains %

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!