반응형
model에 데이터 추가하기
모델명.objects.create()
- 모델명.objects.create() 를 사용하여 데이터를 추가한다.
- views.py에서 수행하게 되는데, 보통 request의 요청을 확인하여 데이터가 담겨있을 경우(요청이 POST일 경우) 그를 활용해 model에 데이터를 추가해주곤 한다.
- 아래는 활용 예시이다.
models.py
class Student(models.Model):
name = models.CharField(max_length=30)
- model에는 Student라고하는 모델데이터가 존재한다.
views.py
from django.shortcuts import redirect, render
from .models import Student
# Create your views here.
def home(request):
return render(request, 'home.html')
def result(request):
name = request.POST['username']
students = Student.objects.all()
is_exist = False
for student in students:
if student.name == name:
is_exist = True
break
return render(request, 'result.html', {'user_name': name, 'is_exist':is_exist})
def add(request):
if request.method == 'POST':
Student.objects.create(
name = request.POST['name']
)
return redirect('home')
return render(request, 'add.html')
- home은 html내부에서 username이라고 하는 값을 result에 넘겨준다.
- result에서는 Student에 등록된 데이터를 확인하여 username의 존재여부를 체크해준다.
- add는 POST 요청을 받아 그 곳에 담긴 name 데이터로 model에 새로운 데이터를 등록한다. 그리고 redirect메소드로 home으로 이동한다.
result.html
<body>
<h1>결과</h1>
{% if is_exist %}
{{user_name}}은 있어요!
{% else %}
{{user_name}}은 없어요!
{% endif %}
</br>
<a href="{% url 'add' %}">신규등록</a>
</body>
- a태그로 add페이지로 이동하게 된다.
add.html
<body>
<form action="{% url 'add' %}" method="POST">
{% csrf_token %}
<input placeholder="이름을 입력하세요" name="name"/>
<button type="submit">최종등록</button>
</form>
</body>
- 이름을 입력받고 자기자신에게 POST 요청을 보낸다.
- views.py의 add 함수에서 method가 POST일 경우 새로운 데이터를 생성하고 home 페이지로 이동하도록 했다.
결과
- 추가 전
- 추가
- 추가 후
반응형
'🛠 기타 > WEB' 카테고리의 다른 글
django 기초 - model 데이터 삭제 / 수정 (0) | 2020.08.24 |
---|---|
django 기초 - 반별 학생정보 저장 사이트 만들기 (0) | 2020.08.24 |
django 기초 - models.py 데이터 가져오기 (0) | 2020.08.23 |
django 기초 - admin (0) | 2020.08.21 |
django 기초 - MTV 패턴 (0) | 2020.08.21 |