룰루랄라 코딩기록장
[Django]Weekely2_Wordcount1_2 본문
Wordcount 2
view.py의 count함수 수정
home에서 name이 fulltext로 정의된 textarea에 작성된 데이터를 full_text라는 변수에 저장한다.
full_text = request.GET['fulltext']
문장을 한 단어씩 끊어서 word_total변수에 리스트 형태로 저장시킨다.
aa bb cc => [aa, bb, cc]word_total = full_text.split()
dictionary형 word_dictionary변수를 생성합니다. dictionary형은 {key:value}값을 가진다.
word_dictionary = {}
word_total리스트에 담겨진 단어를 하나 씩 탐색하면서 word_dictionary에 존재한다면 value값을 1씩 증가시키고, 존재하지 않다면 key값 추가 후 value값을 1로 저장한다.
for word in word_total: if word in word_dictionary: word_dictionary[word] += 1 else: word_dictionary[word] = 1
item()함수는 dictionary형 자료를 튜플형태로 반환해준다.(key,value)
추가적으로 단어가 저장된 횟수 즉 value값을 내림차순으로 보여주기위해
sort함수를 사용할 때 lambda를 이용했다.s_wd = sorted(word_dictionary.items(), key=lambda k: k[1], reverse=True)
마지막으로 가공한 데이터를 count페이지 보내주기 위해서는 render함수의 세 번째 인자값에 dictionary형 인자값을 생성하여 넘겨주어야 한다.
full_text는 'fulltext', word_total은 len함수를 사용하여 나뉘어진 단어의 갯수를 'total'로, 마지막으로 s_wd에 저장된 내용을 'dictionary'라는 이름으로 count페이지로 반환해준다.
return render(request, 'wordcount/count.html', {'fulltext': full_text, 'total': len(word_total), 'dictionary': s_wd})
마지막으로 count에 view에서 받아온 데이터를 출력하는 코드를 작성해주면 된다.
템플릿 변수를 사용하여 dictionary형으로 render할 때 정의했던 key값을 사용하여 사용자에게 보여주도록 한다.
단어의 이름과, 단어가 사용된 빈도 수는 for문을 사용하여 출력해줘야 한다.
결과
home에서 문장을 입력한 후 버튼을 클릭하게 되면 다음과 같이 단어의 총 갯수와 해당 단어가 작성된 빈도수를 보여주게된다.
'LikeLion > Djaongo' 카테고리의 다른 글
[Django]Weekely2_Wordcount (0) | 2019.04.16 |
---|---|
[Django]Weekly1.5 MTV (0) | 2019.04.04 |
[Django]Weekly1-3 Hello World 실습 (0) | 2019.04.04 |
[Django]Weekly1-2 Hello World 이론 (0) | 2019.04.02 |
[Django]Weekly1-1 기본환경 셋팅 (0) | 2019.04.02 |