首页 > 解决方案 > 俄语中的postgresql psycopg2搜索不起作用

问题描述

在 DB 中有这样的值:
C:\555\Новый текстовый документ.txt

在 python 瓶脚本中有一个语句:
cursor.execute("""select * from main where filename ilike '%%' || %s || '%%' escape ''""", (filename,))

如果我按文件扩展名搜索或只是编号,则可以。但如果我用俄语字母搜索。它什么也没显示。

PS 我在 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()

标签: pythonpostgresqlcentospsycopg2

解决方案


正确的答案是将代码更改为(而不是 filename = request.forms.get):

        username = request.forms.user
        filename = request.forms.file
        time = request.forms.time
        server = request.forms.server

推荐阅读