본문 바로가기
내일배움캠프

27. 내일배움캠프 - 20일차 TIL

by 새싹_v 2022. 9. 28.
728x90


 

TIL

📌
 오늘 한 일
아침 장고 쪽지시험
장고 원격강의 5주차
팀원들과 프로젝트 회의
거북이반 강의 듣기

 

오늘 장고 쪽지시험은 어제보다 난도가 낮았다.

그래서 쉽게 풀고 깃허브까지 푸시를 할 수 있었다.

뭔가 풀리니깐 오!! 좀 늘었군 하는 느낌이 들어서 좀 좋았음

시험을 보고 해설 보고

장고 원격강의 5주차를 들었다. 5주차 내용은 잘 따라 할 수 있어서 

나쁘지 않았다. 하지만 혼자는 못할 거 같은 느낌 ㅋㅋㅋ

원격강의도 듣고 팀 회의도 했다. 

팀 회의는 어제 역할 분담한 거 기능 각자 기능 한번 확인해보고

오늘 페이지마다 구현할 기능들을 체크했다.

순조롭게 진행되고 저녁 먹고 거북이 반 강의 듣고

이런 식으로 하루가 가는 것 같다. 뭔가 했는데 한 게 없는 느낌

그리고 딴짓하는 시간이 좀 많아진 거 같음

내일부터 프로젝트 기간이니깐 좀 열심히 해야겠다. 

오늘 틸은 여기까지!

 

 

remind

githob에 올릴 땐 아래 방법 사용하기!
1. gitignore를 만들어주기 https://www.toptal.com/developers/gitignore > Django, Window, visualstudiocode 입력하면 파일이 생기는데 복사한다 > vscode로와서 .gitignore 파일 만들어서 안에 붙여 넣는다. > 추가로 이미 venv폴더를 만들었기 때문에 .gitignore파일에 들어가서 ### Django ###부분에 venv를 추가로 넣어준다.

2. 깃허브로 가서 repository 만든다. > 만든 후 주소를 복사한다.
터미널 아래 순서로 작성 가상 환경에 들어온 상태에서
- 1) git init (깃 저장소 생성)
- 2) git remote add origin 'repository주소 넣기'
- 3) git add .
- 4) git commit -m '커밋메시지'
- 5) git push origin master(or main)

위에 3~5 순서는 vscode에 파일을 깃허브에 push하는 과정 깃허브 새로 만든 repository에 가면 push 한 파일을 볼 수 있음

====거북이반=====

templates > base.html 더 꾸며주기
getbootstrap.com에서 include vai CDN ->
<!-- CSS only --> 복사해서 <head></head>사이에 넣기
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">

<!-- JavaScript Bundle with Popper --> 복사해서 <body></body>사이에 넣기
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
이런 식으로 첨부를 하면 base.html를 extend를 하면 모든 페이지에서 부트스트랩을 가져올 수 있음


==== 작성한 데이터들 페이지에서 보이게 하는 방법!=======
articles > views.py >
from .models import Article (임포트하기)
def dinner(request, name):   #안에 장고 ORM문법사용
         articles = Article.objects.all() #모든 Article불러오기
         context = {
                       'article':articles,#불러왔으니 context에 넣어주기
      }


templates > dinner.html
block 안에 아래 코드 입력해주기
{ block content %}
<h1>리뷰 리스트</h1>
{% for article in articles %}
<p>글 번호: {{ article.pk }}</p>
<p>글 제목: {{ article.title }}</p>
<p>글 내용: {{ article.content }}</p>
<hr/> #수평선
{% endfor %}
{% endblovk %}
================================

======작성페이지 만들어주기========
article > templates > review.html

{% extends 'base.html' %} #상속받고
{% block content%} # block 안에 작성
<form class="form-group" action="{% url 'articles:create_review' %}" method="POST"> #create_review로 보낼거고 메소드는 POST 부트스트랩을 위한 class 
     {% csrf_token %} #보안을 위한 토큰
     <label for ="title">Title: </label>
     <input class="form-control" type="text" name="title" /><br /> #class="form-control" 부트스트랩 디자인요소
     <label for="content">Content: </label>
     <textarea class="form-control" name="content" cols="30" rows="5"></textarea><br> <input type="submit" /> </form>
{% endblock %}

- 위에서 작성한 페이지에서 작성하고 데이터 보내주기 해보기
article > views.py

흐름!!!(중요❗)
review 페이지에서 제출을 누르면 articles>review.html안에 form태그 action="{% url 'articles:create_review' %}"로 들어와서 create_review 가진 곳 > articles>urls.py에들어와서 path('create_review/', views.create_review, name='create_review')여기서 views.create_review 로 감> article.views.py안에 def create_review(request)로 들어온다. title받고 Article에 title과 content를 저장해준다(POST).

def create_review(request): # 코드 확인
          content = request.POST.get('content') #리퀘스트로 받은 것 중 POST메소드일때 content이름으로 된 것을 받아오겠다.
          title = request.POST.get('title')
          article = Article(title=title, content=content) #Article에 titile과 content를 저장하겠다.(POST방식)
          article.save() #Article에 있는 기능 중 save 사용, 알아서 db에 저장함
          return redirect('/articles/dinner/dnd/')

아래 그림으로 흐름 보기!!!

728x90

댓글