inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬으로 실전 웹사이트 만들기

게시판만들기 - 글 리스트

검색어 한글입력

318

vocolor

작성한 질문수 3

1

안녕하세요? 열공중인 학생입니다.

검색기능 구현을 열심히 따라하고 있는데 보니 영문 검색은 작동하는데 한글 검색은 동작하지 않고 

{'$or': [{'title': {'$regex': 'í\x8c\x8cì\x9d´ì\x8d¬'}}]}

가 프린트 됩니다. 

주소창에는 http://localhost:9000/list?search=0&keyword=파이썬  로 잘 나오는 것 같은데 결과는 "데이터가 없습니다." 라고 나옵니다.

해결방법이 궁금합니다.

python

답변 2

3

남박사

일반적으로 많이 사용되는 크롬인 경우에는 대부분의 데이터를 유니코드로 처리하고 플라스크는 내부적으로 이를 자동으로 처리하게 되어있기 때문에 별 문제가 없을꺼라 사료됩니다만 웹브라우저를 어떤걸로 테스트 하셨는지 모르겠습니다.

어쨌든 한글을 보낼때 데이터의 인코딩 문제가 발생해서 생기는 문제입니다. 여러가지 처리 및 해결 방안이 있겠지만 검색시 보내는 한글 데이터를 javascript 의 escape() 함수로 감싸서 보내는 방법이 가장 간단할걸로 생각됩니다.

HTML 쪽 파일에서는 아래와 같이

self.location.href= "{{url_for('lists')}}?search=" + escape(v_search) + "&keyword=" + escape(v_keyword);

이런식으로 한글을 escape 처리해서 전송하고

받는 쪽 py 파일에서는 아래와 같이 다시 urllib.parse.unquote() 함수를 사용해서 디코딩 해야 합니다.

from urllib.parse import unquote

unquote() 함수로 해당 데이터를 디코딩 시키면 될 것 같습니다. 브라우저 및 환경이 어떤지 정확히 알 수 없어 이 답변으로 해결되실지 모르겠습니다.

0

vocolor

헉! IE로 테스트하다가 발생한 것이었네요! Edge나 크롬, 웨일 브라우저에서는 잘 동작합니다!

IE는 유니코드를 잘 처리 못하는지는 처음 알았습니다. 선생님 감사합니다. 그리고 알려주신 내용도 잘 참고 하겠습니다!

iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?

0

65

2

리스트 이동 시 창 에러 발생

0

75

1

배포후 회원 등록 후 로그인 에러...

0

73

2

내부 서버 오류

0

67

2

app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"

0

53

2

DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.

0

47

1

몽고db studio3T를 깔았는데

0

57

2

flake8과 linter

0

74

3

500이 뜹니다.

0

57

2

첨부파일 삭제

0

66

2

검색기능 질문

0

61

2

google.py

0

66

2

Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ

0

83

3

혹시 전체 코드 공개되어 있나요?

0

96

1

join.html 의 form 태그값 을 member_join() 에서 처리못함.

0

104

1

google.py 몽고db 샘플데이터 만들기

0

100

2

flake8 설치 이후 명령팔레트에서 linter가 안보입니다.

0

237

2

파이썬으로 만들어서 웹호스팅에 올릴경우

0

304

1

현재 구글검색 무한스크롤변경 문의합니다

0

297

1

몽고디비아틀라스로 추가 공부해서 올립니다.

0

218

1

IIS 500.19에러

0

660

2

버전 문제도 수정했는데 결과가 안나옵니다.

0

258

1

데이터베이스 저장관련 질문입니다.

0

270

1

test가 생기지 않습니다.

0

511

3