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
'내일배움캠프' 카테고리의 다른 글
29. 내일배움캠프 - 22일차 TIL (1) | 2022.09.30 |
---|---|
28. 내일배움캠프 - 21일차 TIL (0) | 2022.09.29 |
26. 내일배움캠프 - 19일차 TIL (0) | 2022.09.27 |
25. 내일배움캠프 - 18일차 TIL (0) | 2022.09.26 |
24. 내일배움캠프 - 4주차 WIL (1) | 2022.09.23 |
댓글