코딩공부/Python Django

[django] 실습 Word Count 만들기 ( 1 )

integerJI 2020. 2. 15. 19:38

python django 단어 수를 체크하는 Word Count 만들기

 

문자열을 입력받아 해당 단어를 체크하고

 

카운트하는 Word Count 실습입니다.


vscode 설치하기 : https://integer-ji.tistory.com/65

python 설치하기 : https://integer-ji.tistory.com/64

git 설치하기 : https://integer-ji.tistory.com/66

 

vscode 설정하기 : https://integer-ji.tistory.com/81

hello world 띄우기 : https://integer-ji.tistory.com/82

git 초기 설정 : https://integer-ji.tistory.com/83

page 이동 : https://integer-ji.tistory.com/84


home.html 수정

<h1>워드 카운트!</h1>

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

 

home.html 수정합니다.

 

데이터를 받기 위해 textarea 추가했습니다.

 

fulltext라는 이름의 textarea에 글을 적고 submit 버튼을 누르면 장고 명령어를 통해 지정해준 'new' url이 실행됩니다.

 

런서버 해서 확인하기 --> http://127.0.0.1:8000/

 

source myvenv/Scripts/activate

cd crudproject/

python manage.py runserver

 

html에 만든 textarea가 추가되었습니다.

 

이제 글을 적어 count 버튼을 눌러봅니다.

 

 

그러면 정상적으로 new.html로 이동을 하며

 

textarea에 입력된 값이 주소창에 fulltext라는 이름으로 들어가 있는 모습을 볼 수 있습니다.

 

 

new.html에 fulltext 띄우기위한 views.py 수정

def new(request):
    full_text = request.GET['fulltext']
    return render(request, 'new.html', { 'fulltext' : full_text })

 

views.py에 new 함수를 수정해 줍니다.

 

기존의 함수는 요청이 들어오면 new.html을 띄워라 였지만

 

새로 생긴 9줄과 수정된 10번 줄을 보면

 

request.GET['fulltext']가있습니다. ( fulltext는 home.html에서 설정해준 textarea의 이름 )

 

form을 통해 전송된 값들은 설정해 주지 않으면 GET방식으로 넘어가며
( GET방식과 POST방식의 차이는 추후 추가 예정. )

 

GET방식으로 넘어온 데이터를 full_text라는 변수에 담았습니다.

 

그리고 full_text를 html에서 사용하기 위해 딕셔너리를 사용해 

 

{ 'fulltext' : full_text }를 추가하였습니다.

 

이 내용은 fulltext라는 요청이 들어오면 full_text를 꺼내라 라는 키값입니다.

( python의 딕셔너리 참고 )

 

 

new.html 수정

<h1>new page!</h1>

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

<br>
{{fulltext}}

 

new.html에 views.py에서 설정한 fulltext를 입력해 줍니다.

 

여기서 { { } }를 사용해 묶었는데 이 의미는 넘어온 데이터를 화면에 출력하기 위해 사용합니다.

 

{% %}는 django 문법을 활용할때 사용 ( 탬플릿 태그 )

{{ }}는 넘어온 데이터를 화면에 출력하기 위해 사용

 

 

html 확인해 보기

 

이제 textarea에 있던 값이 출력이 되었습니다.

 

여기까지의 내용을 정리해보면

 

서버를 실행

-> home.html이 열림

-> textarea에 값을 입력하고 전송 버튼을 클릭

-> form action에 따라 값이 url 'new'로 전송

-> new가 요청이 들어오니 urls.py에서 views.py의 new를 실행

-> views.py에서 new를 실행할때 request.GET['fulltext']가있으면 full_text로 담고 이 full_text는 fulltext라는 키값으로 값이 있으면 full_text를 출력

 

입니다.

 

new.html에서 {{fulltext}}라는 데이터를 받겠다 했으니 fulltext와 연결된 full_text를 가져온 것입니다.

 

---