Skip to content

glory-yun/AD_Project_WebserverComputing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AD 프로젝트

개요

Django 기반의 애플리케이션은 도서를 관리하고, 사용자 인증을 처리하며, 사용자가 질문, 답변, 댓글과 상호작용할 수 있는 플랫폼을 제공합니다. 본 프로젝트는 도서 관리, 사용자 프로필, 인증 기능을 포함한 여러 핵심 기능을 구현하고, 조회수 기능과 내비게이션 바 개선과 같은 커스텀 기능도 추가하였습니다.

구현된 기능

1. 도서 관련 클래스 메소드

  • get_all_books: 모든 도서의 목록을 반환합니다.
  • get_books_by_author: 특정 저자로 필터링된 도서를 반환합니다.
  • get_books_by_title_keyword: 제목에 특정 키워드를 포함한 도서를 반환합니다.
  • get_books_ordered_by_title: 도서를 제목 순으로 정렬하여 반환합니다.

2. 파일 업로드를 위한 Request 객체 활용

  • Django의 request 객체를 사용하여 파일 업로드 기능을 구현하였습니다.
  • UploadFile 모델: 파일 제목, 파일, 업로드 시간을 저장하며, 파일은 media/uploads/ 폴더에 저장됩니다.

3. 로그인/로그아웃 기능

  • 로그인: Django의 기본 인증 시스템을 사용하여 사용자가 로그인할 수 있습니다. 로그인 성공 시 세션이 생성됩니다.
  • 로그아웃: 사용자가 로그아웃할 때 세션을 종료합니다.

4. HTTP 요청/응답 처리

  • HTTP 요청은 Django 뷰에서 처리되며, API 요청의 성공 또는 실패를 나타내기 위해 적절한 HTTP 응답 코드(201 Created, 400 Bad Request)를 사용합니다.
  • 응답은 JSON 형식으로 반환됩니다.

5. 서비스 계층 분리 및 예외 처리

  • 데이터베이스와의 상호작용 및 도서 대출 처리 등 비즈니스 로직을 서비스 계층으로 분리하여 유지 보수성과 확장성을 높였습니다.
  • 커스텀 예외 처리: BookNotFound, BookHasNoBorrowHistory와 같은 특정 예외를 정의하고 처리합니다. 3

6. 추가 구현 기능

  • 사용자 프로필 : 사용자의 기본 정보(아이디, 이메일, 가입일)와 사용자가 작성한 질문, 답변, 댓글 목록을 표시합니다.
  • 조회수: 사용자가 질문을 조회할 때마다 조회수를 증가시키며, 동일한 질문을 반복해서 조회해도 조회수가 증가하지 않도록 구현하였습니다.
  • 네비게이션 바 개선: 로그인한 사용자의 이름을 네비게이션 바에 표시하고, 프로필, 로그아웃 등 다양한 링크를 제공하는 동적 내비게이션 바를 구현하였습니다.

About

웹서버컴퓨팅 AD 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages