Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 참가후기
- django multi image
- 코딩기초트레이닝
- 스파르타코딩클럽
- sql
- 프로그래머스입문
- html
- 장고 다중이미지
- python
- useState
- 무료강의
- 프로그래머스
- 파이썬
- React
- error
- jquery
- 스파르타
- 20492번
- SEF2022
- 네이버커넥트재단
- MongoDB
- 개인정보수집유효기간
- 22938번
- GIT
- 프론트엔드
- 장고이미지처리
- 반응형
- 파이썬무료강의
- ㅐㄱ이
- css
Archives
- Today
- Total
코딩,해볼까
04.11. HoIT! : Django 팀 과제 진행 본문
0. 팀 과제 정보요약
IT 관련 최신 소식을 주제로 다양한 포스팅을 공유하는 뉴스피드 웹 제작.
+ 기본 기능 충족 후 데이터 크롤링 진행 예정
💙 나의 역할 : 게시글 파트의 views 를 담당
1. 문제점
2. 시행착오
자꾸 까먹는데 강의밖에 돌려볼 수 없는 나 자신... 먼저 팀 과제를 진행하면서 장고 강의를 다시 들으며 요약하였다.
3강. 게시글 쓰기, 읽기와 삭제의 핵심!
같은 url이더라도 접근하는 방식(Get과 Post) 에 따라서 기능이 달라질 수 있다.
POST 📩 = 우리가 작성을 한 후에 버튼을 눌러 보낸다.
글 작성 후 엔터 > 서버로 데이터를 보낸다.
GET 👀 = 우리가 데이터를 본다.
우리가 보는 화면. 해당 url 로 요청한 화면
3강. 게시글 쓰기, 읽기 순서
1) HTML 구성
POST로 이제 /주소/ 이라는 url로 보내준다는 form 설정
form에서 어떤 정보를 넘겨줄지 확인!
<!-- action, method, csrf_token -->
<form action="/주소/" method="해당 메소드">
{% csrf_ token %}
<div>내용</div>
<button>버튼</button>
</form>
2) views.py 구성
해당 url의 정보가 적힌 urls.py에서 views.함수를 따라간다.
form에서 넘겨주는 정보에 대해 작성!
from .models import 모델이름
if request.method == 'POST':
user = request.user # 전체 user 가져오기
나의게시물(my_feed) = 모델이름()
나의게시물.auther = user
나의게시물.content = request.POST.get('form에 있는 name="" 입력','')
나의게시물.save()
return redirect('/주소')
3) http에서 form에 값을 입력하고 버튼을 눌렀지만 변화가 없다. 대신 데이터베이스에 변화가 있는지 살펴봤다.
게시물은 db연결만 되어있다면 잘 저장이 된다. -- 글쓰기 완료 --
4) 이제 위에서 데이터베이스에 들어간 게시물이 바깥으로 보여질 수 있도록 셋팅한다.
로그인 된 유저만 이동할 수 있는 html 설정한 것이다.
user = request.user.is_authenticated
# 사용자가 로그인 되어 있는가? 인증된 사용자가 있는가 확인
if user:
return render(request, '이동할 html 경로')
else:
return redirect('돌아갈 html 경로')
if의 사이에 아래 코드를 추가한다.
# 모든 데이터를 불러와서 최신순으로 정렬하여 출력한다.
모든게시물(all_feed) = 모델.objects.all().order_by('-created_at')
# 생성 시간을 역순으로 정렬할 수 있게 -를 created_at 에 붙여줬다.
return render(request, '주소', {'feed':all_feed}) # 화면에 넘겨주기 위해 추가.
5) html을 수정한다.
{% for tw in tweet %}
<div class="col-md-12 mb-2">
<div class="card">
<div class="card-body">
<div class="media">
<div class="media-body">
<h5 class="mt-0">{{ tw.content }}</h5>
</div>
<div style="text-align: right">
<span style="font-size: small">{{ tw.author.username }}-{{ tw.created_at|timesince }} 전</span>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
ctrl + alt + L
command + option + L
3. 해결방법
4. 알게된 점
'Back > TIL' 카테고리의 다른 글
04.13. Pull Request (0) | 2023.04.14 |
---|---|
04.12. Git과의 전쟁 / 풀 리퀘스트(Pull Request)와 git add, commit, push 되돌리기의 모든 것 + 원 저장소의 브랜치를 가져오는 방법 해결! (4) | 2023.04.12 |
[programmers] 입문 : 암호 해독 (+ 2h) (0) | 2023.04.11 |
04.10. [B5] HoIT! 프로젝트 / 팀 장고 : 분노의 예비 개발자 (0) | 2023.04.11 |
04.07. 장고 개인 프로젝트 ing... (0) | 2023.04.08 |
Comments