📢 공지사항
home

CRUD - Create

번호
16
비고
12:35
주차
5월 둘째주
확인
new : new.html 보여줌
create : 데이터베이스에 저장
new.html 생성, views.py 에 다음 코드 작성
def new(request): return render(request, 'new.html')
Python
복사
urls.py 에 다음 코드 작성
path('new/', new, name='new'),
Python
복사

GET vs POST

GET : 데이터를 얻기 위한 요청 / 데이터가 url 에 보임
POST : 데이터를 생성하기 위한 요청 / 데이터 url 안 보임 / Csrf(사이트 간 요청 위조) 공격 방지
new.html 에 다음 코드 작성
<h1>Write Your Blog</h1> <form action="" method="post"> {%csrf_token%} <p>제목: <input type="text" name="title"></p> <p>작성자: <input type="text" name="writer"></p> 본문: <textarea name="body" id="" cols="30" rows="10"></textarea> <button type="submit"> submit</button> </form>
HTML
복사
views.py 에 다음 코드 추가
from django.utils import timezone def create(request): new_blog = Blog() new_blog.title = request.POST['title'] new_blog.writer = request.POST['writer'] new_blog.body = request.POST['body'] new_blog.pub_date = timezone.now() new_blog.save() return redirect('detail', new_blog.id)
Python
복사
render 가 아닌 redirect 로 되돌아감 → 위에 redirect 자동 추가 (안되면 추가)
path('create/', create, name="create"),
Python
복사
urls.py 에 위 코드 작성
new.html 의 form action 에 {%url 'create'%} 추가