Django
django form 이용하기
주씨.
2022. 6. 7. 15:51
728x90
app에 forms.py 생성
from django import forms
class BlogForm(forms.Form):
# 내가 입력받고자 하는 값들
title = forms.CharField()
body = forms.CharField(widget=forms.Textarea)
views에 함수 작성 (GET)
# django form을 이용해서 입력값을 받는 함수
# GET 요청과 (= 입력값을 받을 수 있는 html을 갖다 줘야함)
# POST 요청 (= 입력한 내용을 데이터베이스에 저장. form에서 입력한 내용을 처리)
# 둘 다 처리가 가능한 함수
def formcreate(request):
if request.method == 'GET':
form = BlogForm()
return render(request, 'form_create.html', {'form': form})
html 작성 (form_create.html)
<h1>django form을 이용한 새 글 작성 페이지</h1>
<form action="" method='POST'>
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value='새 글 작성하기'>
</form>
views에 함수 작성 (POST)
def formcreate(request):
if request.method == 'GET':
form = BlogForm()
elif request.method == 'POST':
form = BlogForm(request.POST)
if form.is_valid(): # 폼 데이터를 자동으로 유효성 검사를 해줌
post = Blog()
post.title = form.cleaned_data['title']
post.body = form.cleaned_data['body']
post.save()
return redirect('home')
return render(request, 'form_create.html', {'form': form})