cari

Rumah  >  Soal Jawab  >  teks badan

Operasi LIKE Django.

<p>Saya cuba menghantar pertanyaan melalui Python Django, dan saya juga cuba menghalang sebarang serangan suntikan SQL. <br /><br />Bolehkah seseorang menerangkan cara pemesejan berfungsi? Contohnya, contoh pertanyaan SUKA. </p><p><br /></p> <pre class="brush:php;toolbar:false;">"PILIH * DARI pentadbir DI MANA nama SEPERTI '%myTitle%'</pre> <p>Mudah untuk mengkonfigurasi pertanyaan seperti ini. </p> <p><kod>cursor.execute("SELECT * FROM admin WHERE name= %s", (_id, ))</code>;</p> <p>Tetapi mudah untuk membuat kesilapan dengan membatalkan %% dalam teks apabila memasukkan %s, contohnya. </p> <pre class="brush:php;toolbar:false;">PILIH * DARI pentadbir DI MANA nama SEPERTI %s</pre> <p>Apabila pertanyaan selesai, ia akan kelihatan seperti ini. </p> <pre class="brush:php;toolbar:false;">PILIH * DARI pentadbir DI MANA nama 'MyTitle'</pre> <p>Ia sedang dilaksanakan dengan betul, tetapi saya mahu %% ditetapkan antara %s dan SUKA. </p> <pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE nama '%MyTitle%'</pre> <p>Bolehkah seseorang menerangkan cara menyelesaikan masalah ini? <br /><br />Skrip mudah saya adalah seperti berikut:</p><p><br /></p> <pre class="brush:php;toolbar:false;">daripada sambungan import django.db tajuk = "myTitle" query = "PILIH * DARI pentadbir DI MANA nama SEPERTI %s" dengan connection.cursor() sebagai kursor: cursor.execute(pertanyaan, (tajuk,))</pre> <p><br /></p>
P粉425119739P粉425119739488 hari yang lalu495

membalas semua(1)saya akan balas

  • P粉293550575

    P粉2935505752023-08-03 13:21:22

    Sila semak halaman ini.

    Apakah yang setara dengan SQL "LIKE" pada pertanyaan Django ORM?

    Itulah cara ORM Django.

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

    Beginilah cara Django mengendalikan pertanyaan mentah.

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

    Apa yang anda tunjukkan bukanlah kod Django, tetapi kod Python-MySQL tulen.

    Dengan Python-MySQL anda boleh melakukannya seperti yang anda lakukan dan ia akan mengendalikan isu sebut harga dan suntikan.

    Tetapi anda sepatutnya.


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

    title_like ialah rentetan padanan kabur.

    mysql seperti rentetan yang mengandungi %

    balas
    0
  • Batalbalas