Python/Jabbok

2021. 03. 17. 답변 수정 삭제 기능 추가, 게시판 검색 기능

씬프 2021. 3. 17. 11:19
반응형

할 일을 미리 정리하고 시작하기로 했다.

 

1. 오늘 할 일

1) 답변 수정 삭제 기능 추가

2) 게시판 검색 기능 (전체 검색, 주제별 검색 기능)

3) 회원가입 수정 (이메일 인증, SSO 기능, Django User 모델 확인)

4) 회원정보 페이지, 회원정보 수정

5) 웹 소설 페이지 제작 진행

 

2. 오늘 한 일

댓글 수정 삭제 기능 추가
검색 기능 추가
분류에 따른 검색 기능 추가

 

Issue #1. 검색 기능에 대해서 (Django ORM)

Django에서는 SQL문을 직접 사용하지 않고 ORM을 통해서 대신 DB를 참조할 수 있다.

# Class는 model 객체
Class.objects.all() # SELECT *
Class.objects.get(T=v) # SELECT v FORM T
Class.objects.create() # INSERT INTO

filter()를 통해 조건에 맞는 것을 가져올 수 있다.

Class.objects.filter(조건) # 조건에 따른 값 가져옴

# 1개 이상의 인자를 지정할 경우 ','로 구분되며 AND 연산으로 묶임
# OR 연산을 하고 싶을 경우 Q를 사용해야 함.

# not 연산의 경우 ~Q를 사용하거나 exclude()를 사용
Class.objects.exclude()
Class.objects.filter(~Q())

# django.db.models.Q

공식 문서는 Q()에 대해서 쿼리 관련 도구로 설명한다.

Q 내부에 사용할 수 있는 속성 값들이 존재한다. ex) __icontain (대소문자 무시하고 포함되는),

Q(subject__incontains=kw)
# subject 값이 대소문자 무시하고 kw를 포함하는 것

Q(subject__startswith=kw)
# subject의 값이 kw로 시작하는 것w로 시작하는 것

# __를 사용한다.
# 꼭 저런 속성값을 안써도 된다. 필요한 경우 검색해서 사용하자.

 

 

프로필 페이지 생성

먼저, Profile 모델을 생성한다. ImageField를 사용하기 위해서 pip pillow 모듈을 설치한다.

settings에서 이미지를 저장할 공간을 지정한다.

내일 좀 더 세밀하게 계획하고 시도하겠음.