728x90
반응형
hello_world.html
{% extends 'base.html' %}
<!-- base.html 템플릿를 기반으로 안에 내용만 바꿔줌-->
{% block content %}
<div style="border-radius: 1rem; margin: 2rem; text-align: center">
<h1 style="font-family: 'Lobster', cursive;">
Hello world List!
</h1>
<form action="/account/hello_world/" method="post">
{% csrf_token %}
<div>
<input type="text" name="hello_world_input">
</div>
<div>
<input type="submit" class="btn btn-primary" value="POST">
</div>
</form>
<!-- 서버 return text 값 가져옴-->
{% if hello_world_list %}
{% for hello_world in hello_world_list %}
<h1>
{{ hello_world.text }}
</h1>
{% endfor %}
{% endif %}
</div>
{% endblock %}
- input태그에 입력한 값 post버튼 누룰시 post방식으로 request
- 서버 request받아 html로 다시 response
- 저장한 데이터 불러와서 for구문으로 출력
views.py
def hello_world(request):
if request.method == "POST":
# hello_world_input이름의 input태그 값 가져오기
temp = request.POST.get('hello_world_input')
# HelloWorld 모델 가져오기
new_hello_world = HelloWorld()
new_hello_world.text = temp
# db에 저장
new_hello_world.save()
# db에 저장한 데이터 불러오기
# hello_world_list = HelloWorld.objects.all()
# HttpResponseRedirect는 새로고침해도 기존정보 불러오지 않게 방지
return HttpResponseRedirect(reverse('accountapp:hello_world'))
# return render(request, 'accountapp/hello_world.html', context={'hello_world_list': hello_world_list})
else:
hello_world_list = HelloWorld.objects.all()
return render(request, 'accountapp/hello_world.html', context={'hello_world_list': hello_world_list})
- 입력값 request 받아 HelloWorld 테이블에 insert
- 저장한 db값 불러오기
- HttpResponseRedirect 로 기존 정보 새로고침되도 불러오지 않게 대비함
- urls.py에 있는 app_name(accountapp)으로 주소 불러와서 쓰기
반응형
'Backend > Django' 카테고리의 다른 글
django 10. CreateView 를 통한 회원가입 구현 (0) | 2021.10.05 |
---|---|
django 09. 장고의 CRUD, class Based View (0) | 2021.10.05 |
django 07. model, DB 연동하기 (0) | 2021.10.05 |
django 06. static 설정 및 css 파일 분리 (0) | 2021.10.05 |
django 05. style, 구글 폰트, 네이버 글꼴을 통해 Header, Footer 꾸미기 (0) | 2021.10.05 |