【发布时间】:2020-01-18 19:20:07
【问题描述】:
我的网络应用上有一个带有搜索栏的表单
@app.route('/search', methods=['POST','GET'])
def row_search():
if request.method == 'POST':
result = request.form
print(result['search'])
cursor.execute("""SELECT rowid,projeYili,projeAdi,ogretmenler,ogrenciler
FROM projects
WHERE projects MATCH '{}'
""".format(result['search']))
return render_template('index.html', projects=cursor.fetchall())
我已使用 MATCH 在名为项目的表中进行搜索,但如果我在搜索栏中输入特殊字符(?、-、。),则会出现错误
例如,如果我在搜索栏中输入 2018-2019,我会收到此错误
sqlite3.OperationalError: no such column: 2019
代码适用于没有特殊字符的文本
【问题讨论】:
-
您使用的是哪个 FTS 扩展?
-
您的第一步是不要将用户提供的值直接放在 sql 查询中;而是将其绑定到查询中的参数。 bobby-tables.com/python
-
@Shawn 我正在使用 FTS5 你是对的,我更改了我的代码以绑定查询和值,但它仍然给出相同的错误
标签: python sqlite flask full-text-search