Django

Django로 커뮤니티 사이트 만들기 (2): CRUD(Create, Read), 댓글

Jinmidnight 2023. 9. 17. 17:25
 

GitHub - jinmidnight01/community_answer

Contribute to jinmidnight01/community_answer development by creating an account on GitHub.

github.com

본 내용의 코드는 전부 위 링크에 있으니 참고바랍니다

 


CRUD(Create, Read): Model 생성

1. models.py 작성 및 DB에 적용

models.py

# 모델 생성
python manage.py makemigrations

# DB 연동
python manage.py migrate

 

2. admin.py에 모델 등록

 

3. Admin 페이지(DB)에 접근 가능한 관리자 계정 생성

# 관리자 계정 생성
python manage.py createsuperuser

# 서버 실행
python manage.py runserver

* URL: 127.0.0.1:8000/admin/

 


CRUD(Create): View & Template 작성, URL 주소 지정

1. views.py에서 new 함수 작성

 

2. templates에서 new.html 작성

* enctype = "multipart/form-data" : 이미지 파일 업로드 시 필수 속성

* {% csrf_token %} : Django에서 CSRF 공격을 대처하는 방법

 

3. urls.py에서 주소 지정

* path(주소 이름, 함수 이름, name="주소 별칭")

 


CRUD(Read): View & Template 작성, URL 주소 지정

1. views.py에서 detail 함수 작성

* get_object_or_404(모델명, pk="id 값")

* pk 뜻: primary key

 

2. templates에서 detail.html 작성

 

3. urls.py에서 주소 지정

* <int: community_id>: detail 함수에 넘겨줄 인자

 


글 목록: View & Template 작성, URL 주소 지정

1. views.py에서 index 함수 작성

* .order_by("-created_at'): 최신순으로 목록 정렬

 

2. templates에서 index.html 작성

 

3. urls.py에서 주소 지정

 


댓글: Model 생성, View & Template 작성, URL 주소 지정

1. models.py에서 Comment 모델 생성

* makemigrations, migrate 잊지 말기

* admin.py에 모델 등록 잊지 말기

 

2. forms.py 생성 후 CommentForm 작성

 

3. views.py에서 comment 함수 작성

* is_valid(): 유효성 검사 method

 

4. detail.html에서 댓글 목록/작성 생성

 

5. urls.py에서 주소 지정

 


404 설정

404 page not found 란?

- 존재하지 않은 url을 입력했을 때 발생

- 클라이언트가 요청한 페이지를 서버가 찾을 수 없다는 응답

 

1. settings.py 설정: DEBUG 모드 변경 & Allowed_hosts 추가

 

2. views.py에서 page_not_found 함수 작성

* exception 매개변수는 오류의 내용을 담고 있는 변수

* 만약 오류의 내용을 화면에 보여주고 싶다면 exception의 값을 읽어서 화면에 보여줄 수 있음

 

3. templates에서 404.html 작성

 

4. urls.py에서 handler404 설정

* handler404 = '(앱이름).views.(함수 이름)'