SNS의 대표적인 기능인 글쓰기 기능을 구현해보자.
1. 사용자가 데이터를 입력할 html에서 form 태그로 데이터를 묶어오기 (action과 method를 사용)
※ action = /tweet/' 입력 시 양쪽에 / 꼭 붙여야 한다.
<!-- templates/tweet/home.html -->
<!-- 생략 -->
<form action="/tweet/" method="post">
{% csrf_token %} <!-- form 태그 시작시 필수기입 -->
<div class="form-group mb-2">
<!-- name과 id를 my-content로 연결 -->
<textarea class="form-control" style="resize: none" name='my-content' id="my-content"></textarea>
</div>
<button type="submit" class="btn btn-primary" style="float:right;">작성하기</button>
</form>
2. 데이터베이스 모델을 추가하고 데이터를 저장하기
# tweet/views.py
from .models import TweetModel # 글쓰기 데이터베이스 모델 추가
def tweet(request):
if request.method == 'GET': # 요청하는 방식이 GET 방식인지 확인하기
user = request.user.is_authenticated # 사용자가 로그인이 되어 있는지 확인하기
if user: # 로그인 한 사용자라면
return render(request, 'tweet/home.html')
else: # 로그인이 되어 있지 않다면
return redirect('/sign-in')
elif request.method == 'POST': # 요청 방식이 POST 일때
user = request.user # 현재 로그인 한 사용자를 불러오기
my_tweet = TweetModel() # 글쓰기 모델 가져오기
my_tweet.author = user # 작성자는 현재 로그인 사용자 저장
my_tweet.content = request.POST.get('my-content', '') # 내용은 html에서 id,name 참조하여 가져오기
my_tweet.save() # my_tweet 저장
return redirect('/tweet')
'Python > Django' 카테고리의 다른 글
| Django ORM 데이터 관계 (0) | 2022.05.31 |
|---|---|
| Django 작성된 글 읽기/삭제 기능 구현 (0) | 2022.05.31 |
| Django 사용자 로그인 상태 확인 & 로그아웃 (0) | 2022.05.31 |
| Django의 사용자 모델을 적용수정하자. (0) | 2022.05.31 |
| Django의 기본 제공 모델을 수정해보자! (0) | 2022.05.31 |