데이터 추가하기
📌 index 페이지에 데이터 추가 버튼 생성.
① index.html에 버튼 생성.
(index.html)
<h1>INDEX PAGE</h1>
<a href="{% url 'create' %}"><button>CREATE</button></a><br><br>
...
② urls.py에 path 추가.
(books/urls.py)
from django.urls import path
from . import views
urlpatterns = [
path('index/', views.index, name="index"),
path('detail/<bpk>', views.detail, name="detail"),
path('delete/<bpk>', views.delete, name="delete"),
path('create/', views.create, name="create"),
]
③ views.py에 함수 추가.
(books/views.py)
...
def create(request):
return render(request, "books/create.html")
④ templates/books 폴더에 create.html 생성.
(create.html)
<h1>CREATE PAGE</h1>
<form method="post" name="createForm">
{% csrf_token %}
<b>제목</b><input name="bname" type="text" value="{{ b.name }}"><br><br>
<b>지은이</b><input name="bwriter" type="text" value="{{ b.writer }}"><br><br>
<b>내용</b><br><textarea name="bcontent" cols="80" rows="8">{{ b.content }}</textarea><br><br>
<button type="button" onclick="check()">DONE</button>
<a href="{% url 'index' %}"><button type="button">HOME</button></a>
</form>
<script>
function check() {
cf = document.createForm;
if(!cf.bname.value) {
alert("제목을 입력하세요!")
}
else if(!cf.bwriter.value) {
alert("지은이를 입력하세요!")
}
else if(!cf.bcontent.value) {
alert("내용을 입력하세요!")
}
else {
cf.submit()
}
}
</script>
⑤ views.py에서 create구현 추가.
(books/views.py)
...
def create(request):
if request.method == "POST":
bn = request.POST.get("bname")
bw = request.POST.get("bwriter")
bc = request.POST.get("bcontent")
Books(name=bn, writer=bw, content=bc).save()
return redirect("index")
return render(request, "books/create.html")
데이터 추가하기 - 결과
📌 데이터 추가하기 - 결과
'Django' 카테고리의 다른 글
[Django] 사진 CRUD(1) - 기본 세팅 (0) | 2022.12.20 |
---|---|
[Django] DB 가져와서 CRUD(7) - 데이터 수정하기(U) (0) | 2022.12.19 |
[Django] 데이터 전송 방식과 Form 태그 (0) | 2022.12.19 |
[Django] DB 가져와서 CRUD(5) - 데이터 삭제하기(D) (0) | 2022.12.19 |
[Django] render와 redirect (0) | 2022.12.19 |
댓글