L'opération LIKE de Django.
P粉425119739
2023-08-02 15:55:17
<p>J'essaie d'envoyer une requête via Python de Django et j'essaie également d'empêcher toute attaque par injection SQL. <br /><br />Quelqu'un peut-il expliquer comment fonctionne la messagerie ? Par exemple, un exemple de requête LIKE. </p><p><br /></p>
<pre class="brush:php;toolbar:false;">"SELECT * FROM admin WHERE nom LIKE '%myTitle%'</pre>
<p>Il est facile de configurer des requêtes comme celle-ci. </p>
<p><code>cursor.execute("SELECT * FROM admin WHERE name= %s", (_id, ))</code>;</p>
<p>Mais il est facile de se tromper en annulant le %% dans le texte lors de l'insertion de %s, par exemple. </p>
<pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE nom LIKE %s</pre>
<p>Une fois la requête terminée, elle ressemblera à ceci. </p>
<pre class="brush:php;toolbar:false;">SELECT * FROM admin OÙ nom 'MonTitre'</pre>
<p>Il est implémenté correctement, mais je souhaite que %% soit défini entre %s et LIKE. </p>
<pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE nom '%MyTitle%'</pre>
<p>Quelqu'un peut-il expliquer comment résoudre ce problème ? <br /><br />Mon script simple est le suivant :</p><p><br /></p>
<pre class="brush:php;toolbar:false;">à partir de la connexion d'importation django.db
titre = "monTitre"
query = "SELECT * FROM admin WHERE nom LIKE %s"
avec connection.cursor() comme curseur :
curseur.execute(requête, (titre,))</pre>
<p><br /></p>
Veuillez consulter cette page.
Quel est l'équivalent SQL "LIKE" sur les requêtes Django ORM ?
C'est la méthode ORM de Django.
https://docs.djangoproject.com/en/4.2/topics/db/sql/
C'est ainsi que Django gère les requêtes brutes.
Ce que vous montrez n'est pas du code Django, mais du pur code Python-MySQL.
Avec Python-MySQL, vous pouvez le faire comme vous l'avez fait et il gérera les devis et les problèmes d'injection.
Mais tu devrais.
title_like est une chaîne de correspondance floue.
mysql comme une chaîne qui contient %