Flask使用mysql查询,类似%%

2024-10-01 00:34:26 发布

您现在位置:Python中文网/ 问答频道 /正文

使用python3在flask中尝试mysql查询

SELECT title FROM Book WHERE title LIKE '%booktitlehere%';

从我的搜索表单的输入来看,这是一个尝试的烧瓶实现

^{pr2}$

当转到保存此表单的页面时,不会出现此错误

_mysql_异常。编程错误:不是所有参数都在字符串格式化期间转换

我尝试添加%%来转义%

likeString = "'%%" + search_string + "%%'"
# print(like)
cur.execute("""SELECT title FROM Book WHERE title LIKE %s;""",likeString)
rv = cur.fetchall()

但还是出错了

_mysql_exceptions.ProgrammingError: not all arguments converted during string formatting

也尝试了用双引号括住select

cur.execute("SELECT title FROM Book WHERE title LIKE %s;",likeString)

Tags: fromflask表单executestringtitle错误mysql
3条回答

Double it

likeString = "'%%" + search_string + "%%'"

cur.execute("""SELECT title FROM Book WHERE title LIKE %s;""", (likeString))

在sql命令中使用搜索字符串之前

search_string= f"%{search_string}%"

然后在sql命令中应用它

cur.execute("SELECT * FROM books WHERE title LIKE :searching_string ORDER BY id ",{"searching_string":search_string})

另外还可以降低
search_string= f"%{search_string}%".lower()

^{pr2}$

示例:

cari = "%" + request.form['cari'] +"%"

conn.execute("SELECT nama, harga FROM barang where nama LIKE %s OR harga LIKE %s", (cari, cari))

相关问题 更多 >