L'opération LIKE de Django.
P粉425119739
P粉425119739 2023-08-02 15:55:17
0
1
419

J'essaie d'envoyer une requête via Python de Django et j'essaie également d'empêcher toute attaque par injection SQL.

Quelqu'un peut-il expliquer comment fonctionne la messagerie ? Par exemple, un exemple de requête LIKE.


"SELECT * FROM admin WHERE nom LIKE '%myTitle%'

Il est facile de configurer des requêtes comme celle-ci.

cursor.execute("SELECT * FROM admin WHERE name= %s", (_id, ));

Mais il est facile de se tromper en annulant le %% dans le texte lors de l'insertion de %s, par exemple.

SELECT * FROM admin WHERE nom LIKE %s

Une fois la requête terminée, elle ressemblera à ceci.

SELECT * FROM admin OÙ nom 'MonTitre'

Il est implémenté correctement, mais je souhaite que %% soit défini entre %s et LIKE.

SELECT * FROM admin WHERE nom '%MyTitle%'

Quelqu'un peut-il expliquer comment résoudre ce problème ?

Mon script simple est le suivant :


à 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,))


P粉425119739
P粉425119739

répondre à tous (1)
P粉293550575

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.

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

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 = f"%{title}%" cursor.execute(query, (title_like,))

title_like est une chaîne de correspondance floue.

mysql comme une chaîne qui contient %

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!