Operasi LIKE Django.
P粉425119739
2023-08-02 15:55:17
<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>
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.
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 ialah rentetan padanan kabur.
mysql seperti rentetan yang mengandungi %