俄语中的 postgresql psycopg2 搜索不起作用
postgresql psycopg2 search in russian not working
在数据库中有这样的值:
C:5\Новый текстовый документ.txt
在python bottle 脚本中有一个语句:
cursor.execute("""select * from main where filename ilike '%%' || %s || '%%' escape ''""", (filename,))
如果我按文件扩展名搜索或只搜索数字,那没问题。但如果我用俄文字母搜索。它什么也没显示。
P.S。我在 ru_RU.UTF8 集合中创建数据库并在脚本中包含 conn.set_client_encoding('UTF8')
。
我做错了什么?
谢谢!
更新 1:
这是一个代码。我还在 Adminer、PyAdmin 和 psql 中进行了测试。在他们中这个查询是可以的。但不在代码中:(
@post('/search')
def search():
username = request.forms.get('user')
filename = request.forms.get('file')
time = request.forms.get('time')
server = request.forms.get('server')
if filename:
cursor.execute("""select * from main where filename ilike '%%' || %s || '%%' escape ''""", (filename,))
return template('index', cursor2=cursor)
cursor.close()
conn.close()
正确答案是将代码更改为(而不是文件名 = request.forms.get):
username = request.forms.user
filename = request.forms.file
time = request.forms.time
server = request.forms.server
在数据库中有这样的值:
C:5\Новый текстовый документ.txt
在python bottle 脚本中有一个语句:
cursor.execute("""select * from main where filename ilike '%%' || %s || '%%' escape ''""", (filename,))
如果我按文件扩展名搜索或只搜索数字,那没问题。但如果我用俄文字母搜索。它什么也没显示。
P.S。我在 ru_RU.UTF8 集合中创建数据库并在脚本中包含 conn.set_client_encoding('UTF8')
。
我做错了什么?
谢谢!
更新 1: 这是一个代码。我还在 Adminer、PyAdmin 和 psql 中进行了测试。在他们中这个查询是可以的。但不在代码中:(
@post('/search')
def search():
username = request.forms.get('user')
filename = request.forms.get('file')
time = request.forms.get('time')
server = request.forms.get('server')
if filename:
cursor.execute("""select * from main where filename ilike '%%' || %s || '%%' escape ''""", (filename,))
return template('index', cursor2=cursor)
cursor.close()
conn.close()
正确答案是将代码更改为(而不是文件名 = request.forms.get):
username = request.forms.user
filename = request.forms.file
time = request.forms.time
server = request.forms.server