postgresql psycopg2 поиск по русски не работает - PullRequest
0 голосов
/ 13 марта 2020

имеют значения в БД, такие как:
C:\555\Новый текстовый документ.txt

Имеют оператор в python bottle скрипт:
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()

1 Ответ

0 голосов
/ 13 марта 2020

Правильный ответ - изменить код на (вместо имени файла = request.forms.get):

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