pyenv 설치 및 3.9.18 가상환경 생성Django 설치설치된 Django 버전 확인실행 결과
Django의 초기 프로젝트 파일 구조 생성 명령어이 명령어는 mysite라는 Django 프로젝트를 생성한다.생성 결과외부 mysite: 프로젝트 컨테이너manage.py프로젝트와 상호작용하는 데 사용되는 커맨드라인 도구mysite/아래 파일들로 구성된 파이썬 패키지
쟝고는 경량 웹서버와 함께 제공된다.쟝고 개발 서버를 실행하면 코드의 변경 사항을 지속적으로 확인하고 자동으로 로드되기 때문에 변경 후 수동으로 다시 로드할 필요가 없다.그러나 프로젝트에 새 파일을 추가하는 것과 같은 일부 작업은 수동으로 다시 시작해야 한다.다음 명령
settings.py의 옵션들DEBUG프로젝트의 디버그 모드를 켜고 끄는 부울 값이다.True로 설정하면 쟝고는 처리하지 않은 예외가 발생할 때 자세한 오류 메세지를 표시한다.상용 환경에선 민감한 프로젝트 관련 데이터가 노출될 수 있으니 False로 설정해야 한다.AL
Django의 프로젝트는 몇 가지 설정이 있는 장고의 설치라는 의미이다.애플리케이션은 모델, 뷰, 템플릿 및 URL의 그룹이다.애플리케이션은 프레임워크와 상호작용해 특정 기능을 제공하고,다른 프로젝트에서 재사용할 수 있다.프로젝트는 다른 쟝고 프로젝트에서도 사용할 수
쟝고 모델은 데이터의 정보와 동작의 근원이다.django.db.models.Model의 하위 클래스인 파이썬 클래스로 구성된다.각 모델은 데이터베이스 필드가 클래스의 각 속성을 표현하는 단일 DB 테이블에 매핑된다.블로그 애플리케이션을 위한 DB 모델을 정의하고, 해당
게시글은 각기 특정 날짜와 시간에 게시된다.게시 날짜와 시간을 저장할 필드가 필요하다.또한 Post 객체가 생성되고 마지막으로 수정된 날짜와 시간을 저장하려 한다.blog의 models.py를 편집해보자.pubilshSQL DB의 DATETIME 컬럼으로 변환되는 Da
블로그 게시글은 일반적으로 시간의 역순으로 표시된다.쿼리에 순서가 지정되지 않은 경우, DB에서 객체를 가져올 때 기본 순서로 적용된다.blog 애플리케이션의 models.py 파일을 편집해 다음과 같이 만들자모델 내부에 Meta 클래스를 추가했다.이 클래스는 모델에
publish 필드로 db 인덱스를 정의해 보자.인덱스를 추가할 경우 이 필드를 기준으로 결과를 필터링하거나 정렬하는 쿼리의 성능이 향상된다.기본 값으로 publish 필드를 사용해 결과를 정렬하니, 많은 쿼리가 이 인덱스를 활용할 것이다.모델의 Meta 클래스에 in
쟝고가 애플리케이션을 추적하고 해당 모델애 대해 DB 테이블을 생성할 수 있게 하려면 프로젝트에서 blog 애플리케이션을 활성화해야 한다.settings.py 파일을 편집해 blog.apps.BlogConfig를 INSTALLED_APPS 설정에 추가하자BlogConf
블로그의 일반적인 기능으로 게시물을 임시로 저장하는 기능이 있다.블로그 게시물의 상태를 관리할 수 있는 상태 필드를 추가해,Draft(임시) 및 Published(게시됨)을 게시물에 대한 상태로 사용해보자.blog의 models.py를 다음과 같이 편집하자.models
게시물은 항상 작성자가 존재한다.어떤 사용자가 어떤 게시글을 작성했는지를 나타내는 사용자와 게시물 간의 관계를 생성해보자.쟝고는 사용자 계정을 처리하는 인증 프레임워크를 함께 제공한다.쟝고의 인증 프레임워크는 django.contrib.auth 패키지로 제공되며 Use
Blog 데이터 모델이 있으므로 해당 데이터베이스 테이블을 만들어야 한다.쟝고는 모델의 변경 사항을 추적하고 데이터베이스에 적용할 수 있는 마이그레이션 시스템이 있다.migrate 명령은 INSTALLED_APPS에 열거된 모든 앱과 마이그레이션을 적용하고,데이터베이스
Post 모델이 DB와 동기화되었으므로 블로그 게시물을 관리하는 간단한 관리 사이트를 만들어 보자.쟝고에는 컨텐츠 편집에 매우 유용한 내장 관리 인터페이스가 함께 제공된다.쟝고 사이트는 모델의 메타 데이터를 읽고 프로덕션에 즉시 사용할 수 있는 인터페이스를 제공해 동적
관리 사이트를 통해 블로그 게시글을 관리하는 법을 살펴 보았으니,프로그래밍 방식으로 DB에서 컨텐츠를 읽고 쓰는 방법을 살펴보자.쟝고 ORM은 객체를 데이터베이스에 쉽기 생성, 검색, 갱신 및 삭제할 수 있는 강력한 데이터베이스 추상화 API이다.ORM을 사용하면 파이
쟝고 뷰는 웹 요청을 수신하고 웹 응답을 반환하는 파이썬 함수이다.원하는 응답을 반환하는 모든 로직은 뷰에 들어간다.먼저 애플리케이션 뷰를 생성하고 뷰에 맞는 URL 패턴을 정의한다.그리고 뷰에서 생성된 데이터를 렌더링하는 HTML 템플릿을 생성한다.각 뷰는 템플릿을
blog 애플리케이션에 대한 뷰와 URL 패턴을 작성했다.URL 패턴은 URL을 뷰에 매핑하고 뷰는 사용자에게 반환되는 데이터를 결정한다.템플릿은 데이터가 표시되는 방식을 정의하는데, 일반적으로 쟝고 템플릿 언어와 함께 HTML로 작성된다.애플리케이션에 템플릿을 추가해
이미지 출처 : https://www.technoarchsoftwares.com/blog/django-request-response-cycle/웹 브라우저는 URL(http://localhost:8000/blog/3/)로 페이지를 요청한다.웹 서버가
웹사이트에는 동일한 컨텐츠를 표시하는 다른 페이지가 있을 수 있다.현재까지 만든 블로그에선 각 게시물의 일부 컨텐츠 정보는 게시글 목록 페이지와 게시글 상세 페이지 둘 다에서 표시된다.표준 URL은 리소스에 대한 기본 URL로 특정 컨텐츠의 가장 대표적인 페이지 URL
블로그 게시글 상세 페이지의 표준 URL을 /blog/1/ 처럼 사용하도록 만들었다.SEO 친화적인 게시글 URL을 만들기 위해 URL 패턴을 변경해보자.publish 날짜와 slug 값을 모두 사용해 단일 게시글에 대한 URL을 만들자.날짜를 조합해 /blog/202
쟝고에는 페이징 데이터를 쉽게 관리할 수 있는 페이징을 휘한 클래스가 내장되어 있다.페이지당 반환할 객체 수를 정할 수 있고, 사용자가 요청한 페이지에 해당하는 게시글들을 조회할 수 있다.blog의 views.py 파일을 편집해 Paginator 클래스를 불러오고 아
지금까지 함수 기반 뷰를 사용해 블로그 애플리케이션을 만들었다.함수 기반 뷰는 간단하지만 쟝고에서는 클래스를 사용해 뷰를 만들 수도 있다.클래스 기반 뷰는 함수 대신 파이썬 객체로 뷰를 구현하는 방법이다. 뷰는 웹 요청을 받고 응답을 반환하는 함수이므로 뷰를 클래스 메
사용자가 이메일을 통해 게시물 추천을 보내, 다른 사라들과 블로그 게시물을 공유할 수 있도록 해보자.사용자가 자신의 이름, 이메일 주소, 수신자 이메일 주소와 필요에 따라 코멘트를 남길 수 있는 폼을 만들어야 한다.게시된 데이터를 처리하고 이메일을 보내는 뷰를 생성해야
blog 애플리케이션을 사용자들이 게시글에 댓글을 달 수 있도록 확장해보자.댓글 시스템을 만들기 위해선 다음과 같은 요소들이 필요하다.게시글의 사용자 댓글을 저장하는 모델댓글을 작성해서 제출하고 데이터를 검증할 수 있는 폼폼을 처리하고 DB에 새로운 댓글을 저장하는 뷰
블로그의 일반적인 기능으로 태그를 사용해 게시물을 분류하는 기능이 있다.태그를 사용하면 간단한 키워드를 사용해 컨텐츠를 비계층적으로 분류할 수 있다.태그는 단순히 게시글에 할당할 수 있는 레이블 또는 키워드다. 서드파티 쟝고 태깅 애플리케이션을 프로젝트에 통합해 태깅