new : new.html 보여줌
create : 데이터베이스에 저장
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'%} 추가
