728x90
반응형
1. Send POST data
2. Receive POST data
3. Save DB
1
hello_world.html
{% extends 'base.html' %}
{% block content %}
<div style="border-radius: 1rem; margin: 2rem; text-align:center;">
<h1 style="font-family: 'Dancing Script', 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>
<h1>
{{ text }}
</h1>
</div>
{% endblock %}
hello_world_input 받아서 text에 넣고 출력하기
views.py
from django.http import HttpResponse
from django.shortcuts import render
def hello_world(request):
if request.method == "POST":
temp = request.POST.get('hello_world_input')
return render(request, 'accountapp/hello_world.html', context={'text': temp})
else:
return render(request, 'accountapp/hello_world.html', context={'text': 'GET METHOD!!!'})
2
데이터를 db에 저장해보자
views.py
from django.shortcuts import render
from accountapp.models import HelloWorld
def hello_world(request):
if request.method == "POST":
temp = request.POST.get('hello_world_input')
new_hello_world = HelloWorld()
new_hello_world.text = temp
new_hello_world.save()
return render(request, 'accountapp/hello_world.html', context={'hello_world_output': new_hello_world})
else:
return render(request, 'accountapp/hello_world.html', context={'text': 'GET METHOD!!!'})
Model에서 만든 HelloWorld 모델에서 나온 HelloWorld() 객체를 new_hello_world에 저장하고
class HelloWorld(models.Model):
text = models.CharField(max_length=255, null=False)
text 필드에 temp를 저장 (입력해준 hello_world_input을 저장)
그리고 db에 new_hello_world.save()로 저장까지.
hello_world.html
{% extends 'base.html' %}
{% block content %}
<div style="border-radius: 1rem; margin: 2rem; text-align:center;">
<h1 style="font-family: 'Dancing Script', 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>
{% if hello_world_output %}
<h1>
{{ hello_world_output.text }}
</h1>
{% endif %}
</div>
{% endblock %}
: hello_world_output이 있다면 text로 h1 만들어라
728x90
반응형
'웹 프로그래밍' 카테고리의 다른 글
pycharm에서 서버 디버깅하는법 (디버깅 설정) (0) | 2021.04.27 |
---|---|
[pinterest clone (12)] DB 정보 접근 (0) | 2021.04.27 |
[pinterest clone (10)] HTTP 프로토콜 GET, POST (0) | 2021.04.26 |
[pinterest clone (9)] Model, DB 연동 (0) | 2021.04.26 |
CSS에 대한 정리 (0) | 2021.04.26 |