Day 11 Django for KN(리뉴얼 복습)

김의석 ·2024년 2월 19일

Django

목록 보기
11/39

Django for KN(Koinonia)

  • 해당 문서는 Django 강의가 리뉴얼 되어 이전 과정들을 복습하는 문서로 작성 됨.

List Comprehension

파이썬에서 리스트를 간결하게 생성하는 방법. 반복문과 조건문을 사용하여 리스트를 만들 수 있다.

1부터 5까지의 제곱값을 갖는 리스트 생성

# 일반적인 방법
squares = []
for i in range(1, 6):
    squares.append(i**2)

#리스트 컴프리헨션 사용
squares_comprehension = [i**2 for i in range(1, 6)]

print(squares)                # 출력: [1, 4, 9, 16, 25]
print(squares_comprehension)  # 출력: [1, 4, 9, 16, 25]
  • 복잡한 로직을 담거나 여러 조건을 포함하는 경우에는 오히려 가독성이 감소할 수 있으므로 적절히 사용해야 합니다.
  # 강의 사용 예시
  
  # list comprehension 
  song_list = [dict(zip(column_names , song_tuple)) for song_tuple in cursor.fetchall()]

  # 일반 for문
 for song_tuple in cursor.fetchall():
 	song_dict = dict(zip(column_names, song_tuple))
 	song_list.append(song_dict)

검색 지원

<style>  
	form {margin-bottom: 10px}
        form input { width: 100%; }
</style>
<!-- 
    * {margin-bottom: 10px} : 태그 간 사이간격
-->

<form action=""  method="get" autocomplete="off">
  <input type="text" name="query" placeholder="검색어를 입력해주세요" autofocus
            value="{{ query }}"
        >
</form>

<!-- 
name="query" : 서버로 전송되는 값은의 이름은 query
value="{{ query }}" : 입력값 유지
autocomplete="off" : 이전의 입력값 자동완성 기능
-->
  • form tag는 query 값을 url에 뒤에 붙여준다.
def index(request):
    query = request.GET.get("query", "").strip() # 요청온 query 값이 있으면 get하고 없으면 "" 빈문자열 반환. 즉 검색어
    
    json_url = "https://raw.githubusercontent.com/pyhub-kr/dump-data/main/melon/melon-20230906.json"
    response = requests.get(json_url)
    song_list = response.json()
    
     if query:
     song_list = filter(
     lambda song: query in song['가수'], song_list
     )
     
     return render(request, "index.html", {"song_list": song_list, "query": query})
     # filter(필터링 조건 함수, 필터링할 목록)
  • Query string : 주소 뒤에 붙어 있는 문자열, requestGET로 확인 가능
profile
널리 이롭게

0개의 댓글