인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

haru2175님의 프로필 이미지
haru2175

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

01-03 검색 지원

01-03 검색지원에 대해

해결된 질문

작성

·

44

·

수정됨

0

  •  

    image.png

    스크립트 문자 그대로 form 썼는데 서버에 새로고침해도 영상과 달리 검색어가 안내려옵니당
    그리고 저도 진석님처럼 코드가 색깔별로 나오게끔 하고싶은데 그건 어떻게 하신건가요..?


인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 2

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

HTML 웹페이지에서는 form 태그를 통해, 지정 주소의 서버 페이지로 요청을 전달할 수 있습니다. 보여주신 코드에서는 form 태그가 아니라 오타인 from 을 입력하셨기에 form 태그가 동작하지 않은 것으로 보여집니다.

image.png

<from> </from> 을 <form> </form> 으로 바꿔서 테스트해보시겠어요?

확인해보시고 댓글 부탁드립니다. :-)

 

이진석님의 프로필 이미지
이진석
지식공유자

그리고, PyCharm 커뮤니티 에디션에서는 CSS 언어 지원이 되지 않습니다. 그래서 CSS 코드에서 문법 강조가 없었던 것입니다. 아래 문서를 보시면 프로페셔널 에디션에서만 CSS 지원이 되고 있습니다.

https://www.jetbrains.com/products/compare/?product=pycharm&product=pycharm-ce

haru2175님의 프로필 이미지
haru2175
질문자

프로페셔널 리딤코드 받아서 설정했는데도 css 언어 지원이 안되는상태일때는 어떡하나요?

이진석님의 프로필 이미지
이진석
지식공유자

파이참 커뮤니티와 파이참 프로페셔널은 별도의 프로그램입니다. 혹시 파이참 커뮤니티로 여셨나요? 파이참 프로페셔널로 여셔야 합니다.
https://www.jetbrains.com/pycharm/download/

파이참 프로페셔널로 여셨다면, html 확장자의 코드에서는 style 태그의 CSS가 자동으로 문법 강조가 됩니다.

파이참 프로페셔널로 여시고, 툴에서 리딤코드를 인증받으신 JetBrains 계정으로 로그인하시면, 6개월 동안 파이참 프로페셔널을 사용하실 수 있습니다.

0

안녕하세요, 인프런 AI 인턴입니다. haru2175님.

검색 기능이 기대한 대로 동작하지 않아 답답하셨을 텐데요. 주어진 상황을 기반으로 해결 방안을 제안 드립니다.

우선, 코드를 살펴보면, 검색어 입력 후 서버에 요청을 보낼 때마다 페이지가 새로고침되며, 검색어 필터링이 제대로 작동하지 않는 것으로 보입니다. 이러한 문제가 발생하는 원인 중 하나는 form 태그에서의 동작 방식과 관련이 있습니다.

해결 방안

  1. POST 방식 대신 GET 방식으로 서버 요청 처리: 일반적으로 검색 기능을 구현할 때는 form의 methodget으로 설정하여 서버로부터 데이터 필터링을 요청합니다.

    <form method="get">
       <input type="text" name="query" placeholder="검색어를 입력해주세요.">
       <button type="submit">검색</button>
    </form>
    
  2. 딕셔너리 형태의 데이타 전송: Django 서버가 get 요청의 파라미터로 들어오는 데이터에 기반하여 song_list를 필터링하는 부분을 확인해야 합니다.

  3. 우선순위에 따른 코드 순서 확인:

    • request.GET.get('query')를 통해 입력받은 검색어를 변수에 저장하고, 이를 사용하는 필터링 로직이 다음과 같이 제대로 되어 있는지 확인하세요:
      
      if query:
       song_list = [song for song in song_list if query in song['가수']]
      

  4. 렌더링 문제 해결: 이후, 필터링된 결과를 화면에 올바르게 렌더링하고 있는지 확인하세요. 네트워크 탭을 통해 서버로부터 응답이 제대로 오는지 확인할 수도 있습니다.

유사한 문제를 해결한 다른 질문들에서 도움을 받을 수도 있습니다:

해당 링크를 참고하면 보다 구체적인 문제 해결에 도움을 받을 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

haru2175님의 프로필 이미지
haru2175

작성한 질문수

질문하기