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를 가져온 것입니다.
---
'코딩공부 > Python Django' 카테고리의 다른 글
[django 실습] 게시판 만들기 - model, admin 설정 (0) | 2020.02.16 |
---|---|
[django 실습] Word Count 만들기 ( 2 ) (2) | 2020.02.15 |
[django 기초] 페이지 이동, git push, 템플릿 태그 (0) | 2020.02.14 |
[django 기초] vscode git 초기 설정, git push, git 강제 push (0) | 2020.02.13 |
[django 기초] project 생성, app 생성, hello world 띄우기, MTV 패턴 (5) | 2020.02.13 |