본문 바로가기

Django45

[Django] 페이징 실습 준비 📌 이전에 만들었던 book 사용. 📌 페이징 확인을 위해 shell을 사용해 레코드 추가. ① shell 실행. python manage.py shell ② 레코드 추가. >>> from books.models import Books >>> for i in range(1, 101): ... n = f"{i}번째 책" ... if i % 2 == 0: ... w = "lee" ... else: ... w = "kim" ... Books(name=n, writer=w, content="this book is ...", hit=0).save() ... >>> quit() 페이징 실습 📌 페이징 실습 https://codingrecord2209.tistory.com/369 [Django] 페이징 페이징 .. 2022. 12. 26.
[Django] 템플릿 연산 - mathfilters 템플릿 연산 - mathfilters 📌 템플릿 연산 - mathfilters ① mathfilters 설치. pip install django-mathfilters ② config/settings의 INSTALLED_APPS에 등록. ... INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'books.apps.BooksConfig', 'mathfilters' ] ③ 연산 사용할 파일에 추가. {% loag mathfilters %}.. 2022. 12. 24.
[Django] 페이징 페이징 📌 페이징 : 레코드들을 한 페이지 나눠 나타내기 어려울 때, 여러 페이지로 나눠 구현하는 것. 📌 Paginator 사용 from django.core.paginator import Paginator 📌 Paginator 사용 예시 from django.core.paginator import Paginator def index(request): page = request.GET.get("page", 1) # URL에 page로 전달되는 인자 받아옴.(없으면 1) b = Board.objects.all() # 모든 레코드 가져옴. pag = Paginator(b, 10) # 레코드를 10개씩 잘라주는 pag객체 생성. obj = pag.get_page(page) # 해당 page를 obj에 담음... 2022. 12. 24.
[Django] 댓글 CRUD(4) - 댓글 삭제(D) 댓글 삭제 📌 댓글 삭제 ① detail.html에 댓글 삭제 버튼 만들기. DETAIL PAGE {{ b.name }} 지은이 조회수 내용 {{ b.content }} HOME MOD DEL {% csrf_token %} INPUT {% for i in rset %} {{ i.nick }} X {% empty %} 댓글 없음. {% endfor %} ② books/urls.py from django.urls import path from . import views urlpatterns = [ path('index/', views.index, name="index"), path('detail/', views.detail, name="detail"), path('delete/', views.delete, .. 2022. 12. 21.
[Django] 댓글 CRUD(3) - 댓글 생성(C) 댓글 생성 📌 댓글 생성 ① detail.html에 댓글 생성 input 만들기. DETAIL PAGE {{ b.name }} 지은이 조회수 내용 {{ b.content }} HOME MOD DEL {% csrf_token %} INPUT {% for i in rset %} {{ i.nick }} {% empty %} 댓글 없음. {% endfor %} ② books/urls.py from django.urls import path from . import views urlpatterns = [ path('index/', views.index, name="index"), path('detail/', views.detail, name="detail"), path('delete/', views.delete,.. 2022. 12. 21.
[Django] 댓글 CRUD(2) - 댓글 출력(R) 댓글 출력 📌 댓글 출력 ① books/views.py에서 댓글 데이터 받기. ... def detail(request, bpk): b = Books.objects.get(id=bpk) r = b.reply_set.all() context = { "b" : b, "rset" : r } return render(request, "books/detail.html", context) ... ② detail.html에 댓글 추가. DETAIL PAGE {{ b.name }} 지은이 조회수 내용 {{ b.content }} HOME MOD DEL {% for i in rset %} {{ i.nick }} {% empty %} 댓글 없음. {% endfor %} 댓글 출력 - 출력 📌 댓글 출력 - 출력 2022. 12. 21.
[Django] 댓글 CRUD(1) - 테이블 생성 테이블 생성 📌 이전에 만들었던 book 사용. 📌 테이블 생성 ① book/models.py에 테이블 생성. from django.db import models # Create your models here. class Books(models.Model): name = models.CharField(max_length=100) writer = models.CharField(max_length=100) content = models.TextField() hit = models.IntegerField(default=0) def __str__(self): return self.name class Reply(models.Model): b = models.ForeignKey(Books, on_delete=mod.. 2022. 12. 21.
[Django] ForeignKey 필드와 역참조 지시자 데이터 간의 관계 📌 데이터 간의 관계 ① 1 : N ② N : N ForeignKey 필드 📌 ForeignKey 필드 : ForeignKey 필드의 레코드는 다른 테이블의 레코드 자체가 됨. 📌 on_delete 속성을 설정해야함. - models.CASCADE : 1이 사라지면 N도 사라지게 한다는 설정. 역참조 지시자 📌 역참조 지시자 : 1:N 관계를 맺으면, 1에는 역참조 지시자가 부여됨. .클래스명_set.all() : 모두 가져옴. .클래스명_set.get( ) : 설정에 맞는 거 하나만 가져옴. 2022. 12. 21.