* 본포스팅은 <예제로 배우는 Django 4>에서 발췌한 내용으로 작성되었습니다.
✔ 소셜 웹사이트 프로젝트 만들기
우리는 사용자가 인터넷에서 찾은 이미지를 공유할 수 있는 소셜 애플리케이션을 만들 것입니다. 이 프로젝트에서는 다음 요소들을 만들어야 합니다.
• 사용자가 등록, 로그인, 프로필 편집, 패스워드 변경 또는 재설정을 하기 위한 인증 시스템
• 사용자가 웹사이트에서 서로를 팔로우할 수 있는 팔로우 시스템
• 공유 이미지를 표시하는 기능과 사용자가 모든 웹사이트에서 이미지를 공유할 수 있는 시스템
• 사용자가 자신이 팔로우하는 사람들이 업로드한 콘텐츠를 볼 수 있는 활동 스트림이 장에서는 목록의 첫 번째 항목을 다루겠습니다.
- 소셜 웹사이트 프로젝트 시작하기
터미널을 열고 다음 명령을 사용해서 이번 프로젝트의 가상 환경을 만듭니다.
Linux 또는 macOS를 사용하는 경우 다음 명령을 실행해서 가상 환경을 활성화합니다.
Windows를 사용하는 경우 다음 명령을 사용하세요.
쉘 프롬프트는 다음과 같이 활성 가상 환경을 표시합니다.
다음 명령을 사용해서 가상 환경에 장고를 설치합니다.
다음 명령을 사용해서 새로운 프로젝트를 만듭니다.
초기 프로젝트 구조가 생성되었습니다. 다음 명령을 사용해 프로젝트 디렉터리로 이동해서 account라는 새로운 애플리케이션을 만듭니다.
settings.py 파일의 INSTALLED_APPS 설정에 애플리케이션 이름을 추가하여 프로젝트에 새로운 애플리케이션을 추가해야 합니다. settings.py를 편집해서 INSTALLED_APPS 목록에서 기존의 다른 설치된 앱 앞에, 아래 굵게 강조 표시된 줄을 추가합니다.
장고는 INSTALLED_APPS 설정에서 나타나는 순서대로 애플리케이션 템플릿 디렉터리에서템플릿을 찾습니다.
django.contrib.admin 앱에는 account 애플리케이션에서 재정의할 표준 인증 템플릿이 포함되어 있습니다. INSTALLED_APPS 설정에 애플리케이션을 먼저 배치하면 django.contrib.admin에 포함된 인증 템플릿 대신 커스텀 인증 템플릿이 기본적으로 사용됩니다.
다음 명령을 실행해서 INSTALLED_APPS 설정에 포함된 기본 애플리케이션의 모델과 데이터베이스를 동기화합니다.
모든 기본 장고 데이터베이스 마이그레이션이 적용된 것을 볼 수 있습니다. 다음으로 장고 인증 프레임워크를 사용해서 프로젝트에 인증 시스템을 구축합니다.
✔ 소셜 웹사이트 프로젝트 만들기
장고는 사용자 인증, 세션, 권한 및 사용자 그룹을 처리할 수 있는 인증 프레임워크를 기본적으로 제공합니다. 인증 시스템에는 로그인, 로그아웃, 암호 변경 및 암호 재설정과 같은일반적인 사용자 작업에 사용되는 뷰가 포함됩니다.
인증 프레임워크는 django.contrib.auth에 있으며 다른 장고 contrib 패키지들에서 사용됩니다. “1장, 블로그 애플리케이션 만들기”에서 이미 인증 프레임워크를 사용해서 블로그 애플리케이션이 관리 사이트에 접근할 수 있는 슈퍼 사용자를 생성했음을 기억하세요. startproject 명령을 사용해서 새로운 장고 프로젝트를 생성하면 프로젝트의 기본 설정에 인증 프레임워크가 포함됩니다. 이것은 django.contrib.auth 애플리케이션과 프로젝트의 MIDDLEWARE 설정에 있는 다음의 두 미들웨어 클래스로 구성됩니다.
• AuthenticationMiddleware: 세션을 사용해서 사용자와 요청(request)을 연결합니다.
• SessionMiddleware: 요청 간에 현재 세션을 처리합니다.
미들웨어는 요청 또는 응답(response) 단계에서 전역적으로 실행되는 메서드가 있는 클래스입니다. 이 책 전체에서 미들웨어 클래스를 여러 번 사용하게 되며, “17장, 실서비스화”에서 커스텀 미들웨어를 만드는 방법을 배우게 됩니다.
인증 프레임워크에는 django.contrib.auth.models 정의된 다음의 모델도 포함됩니다.
• User: 기본 필드들을 가진 사용자 모델입니다.
이 모델의 주요 필드는 username, password, email, first_name, last_name 및 is_active입니다.
• Group: 사용자를 분류하기 위한 그룹 모델입니다.
• Permission: 사용자 또는 그룹이 특정 작업을 수행하기 위한 플래그
프레임워크에는 나중에 사용할 기본 인증 뷰 및 폼도 포함되어 있습니다.
《예제로 배우는 Django 4》
'IT 정보' 카테고리의 다른 글
[Django 4] 온라인 상점 프로젝트 만들기 (0) | 2024.03.18 |
---|---|
[Django 4] 장고 프로젝트 만들기 (1) | 2024.03.04 |
[Django 4] 장고 설치하기 (1) | 2024.02.28 |