Development/Django(멋쟁이사자처럼 7기 운영진)

[멋사7기] 2주차 - 2. wordcount 실습 (week2 폴더)

안다희 2019. 1. 16. 21:59
728x90

- home.html에서 url 표현


<a href="{%url 'about' %}">About</a>

<form action="{%url 'result' %}">
<textarea cols="40" rows="10" name="fulltext"></textarea>
<br>
<input type="submit" value="Count!">
</form>


{%url 'name' %}



- result.html

<h1>텍스트는 {{total}} 로 구성되어 있습니다.</h1>

<a href="{%url 'home' %}">다시 home으로</a>
<br>
<h2> 입력한 텍스트 </h2>
{{full}}

<h2> 단어 카운트 </h2>
{% for word, count in dictionary %}
{{word}} : {{count}} <br>
{% endfor %}


{{total}}


{% for %}

{% endfor %}


- views.py

def result(request):
text = request.GET['fulltext']
words = text.split()
word_dictionary = {}
for word in words:
if word in word_dictionary:
word_dictionary[word] += 1
else:
word_dictionary[word] = 1
return render(request, 'result.html', {'full': text, 'total': len(words), 'dictionary': word_dictionary.items()})


- html의 name 가져오기

request.GET[form안의 name]


- 공백 기준으로 단어 나눠서 리스트로 반환

.split() 


- 리스트 생성

listname = {}


- 변수 html에서 쓰고싶을 때

render(request, 'result.html', {'key': value} 

사전형 객체?!


- list 길이

len(listname)


- list를 쌍으로 전달

.items()


html에서

dict_items([('gr', 1), ('f', 2)])


그냥

word_dictionary.items()가 아니라 word_dictionary로 전달하면

{'ㄴㅇㄹ': 1, 'ㅇㄴ': 1}


근데 이건 for문이 안돌아 그러니까 items()로 전달!



출처: https://mingos-habitat.tistory.com/34 [밍고의서식지:티스토리]