📢 공지사항
home

POST 통신을 이용한 DB 데이터 저장 실습

수강계획
2022/01/09
번호
17
복습여부
수강여부
수강일
2022/01/09
속성
DB SAVE
1.
Send POST data
2.
Receive POST data
3.
Save DB
초록색 바 없애고 글자 가운데 정렬
폰트 스타일 적용하기
input 태그 사용해서 서버로 보낼 내용 입력, 데이터를 구분하는 이름(hello_world_input)
이 상태에서 서버 구동해서 보면 버튼은 눌러져도 서버에서 처리하는 메소드를 안만들어서 차이가 없음
views.py에서 request.method가 post일 경우,
temp라는 임시 변수 생성해서 request에서 POST 메서드 중에서 get(’hello_world_input’)이라는 데이터를 가져와라
context={’text’ : temp}로 변경
데이터를 저장도 해야함.
models.py에서 만든 HelloWorld 모델을 가져와서 import 하고
new_hello_world = HelloWorld() : HelloWorld 모델에서 나온 새로운 객체가 new_hello_world에 저장됨
{% extends 'base.html' %} {% block content %} <div style="border-radius: 1rem; margin: 2rem; text-align: center"> <h1 style="font-family: 'Gamja Flower', 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 %}
HTML
복사
hello_world_output이 있는지 ! 있다면 output의 text를 출력해라
from django.http import HttpResponse from django.shortcuts import render # Create your views here. 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!!!'})
Python
복사
views.py
from django.db import models # Create your models here. class HelloWorld(models.Model): text = models.CharField(max_length=255, null=False)
Python
복사
models.py