장고는 파이썬 가상환경(virtualenv)에서 설치를 할 것이다. 로컬환경이 아닌 가상환경에 설치하는 이유는 각각의 프로젝트에서의 독립적인 환경을 만들어주기 위함이다. 여러개의 프로젝트를 개발한다고 가정할 경우 각각의 프로젝트에 사용된 파이썬이나 라이브러리들의 버전이
프로젝트 안에는 웹 페이지의 띄우기 위한 하나의 모듈을 구성하게 되는데 이걸 장고 앱이라고 한다. 하나의 장고 프로젝트는 여러 장고 앱을 담을 수 있다. 먼저 다음의 명령어로 review라는 사이트 앱을 작성한다.위와 같은 폴더가 생성된다. 여러개의 파일들은 revie
장고의 템플릿을 사용해서 html 파일과 views.py를 연동할 수 있다. review App 내에 templates 폴더를 생성하면 폴더 내 경로에 html 파일을 두고 views.py와 연결할 수 있다. templates - 변수 넘기기 templates 파일에
장고는 모델(Model)을 이용하여 데이터베이스를 처리한다. 보통 데이터베이스에 데이터를 저장하고 조회하기 위해서 SQL 쿼리문을 이용해야 하지만 장고의 모델(Model)을 사용하면 이런 SQL 쿼리문의 도움없이 데이터를 쉽게 처리할 수 있다. migrate migr
장고 관리자를 사용하기 위해 우선 장고 관리자 화면에 접속할 수 있는 superuser를 먼저 생성한다.python manage.py createsuperuser명령을 입력하면 이름, 닉네임, 비밀번호를 설정할 수 있다. 설정해주면 성공적으로 superuser가 생성되
현재와 같이 url을 지정할 경우 페이지의 갯수가 많아지는경우 url 규칙이 변경 될 경우 일일이 찾아가서 변경해주어야하는 번거로움이 발생한다. 그런 비효율적인 부분을 해결하기위해 우리는 url 별칭을 사용할 것이다./review/urls.py 로 가서 path에 na
/question_detail.html답변 내용을 적을 수 있는 textarea와 답변을 등록하는 답변버튼을 만들었다.{% url 'review:answer_create' question.id %} 은 답변을 저장하는 URL이며 데이터를 보내는 방식은 POST로 작성했
부트스트랩이라는 괜찮은 템플릿 제공해주는 사이트를 이용해서 지금 만드는 웹사이트를 조금은 더 게시판답게 꾸며보려한다.부트스트랩위 사이트에 들어가서 부트스트랩을 다운로드한다. zip 파일이 다운받아지는데 압축을 풀고 css 디렉토리 안으로 들어가면 bootstrap.mi
장고에서는 템플릿을 상속받을 수 있다. 예를 들어 여러개의 템플릿 중에서 ` 태그의 내용만 다르고 `태그 부분의 내용은 같은 경우 수정사항이 발생했을 경우 모든 파일을 다 수정해줘야하는 번거로움이 생긴다. 장고에서는 템플릿을 상속받을 수 있기 때문에 베이스가 되는 템플
사용자 웹 인터페이스를 구성하는 것 중에서 폼(Form)은 사용자의 입력을 받기 위한 필드나 위젯들의 묶음을 의미합니다. 우리가 자주 보는 로그인 화면이나, 글쓰기 화면 등에 데이터를 입력 받는 입력 칸들과 버튼으로 이루어져 있습니다. 현재 게시판에서 게시글을 등록할
현재 게시글을 올리고 그 게시글에 답변글을 올릴 수 있는 기능은 있으나, 답변 글을 올리고나서 홈 화면으로 돌아갈 수 없는 기능이 없어 막상 사용하기에는 많이 불편하다. 그래서 네비게이션바를 추가해보자.부트스트랩 - 네비게이션바네비게이션바는 모든 페이지에서 보여져야하기
Django 공식 문서🙄공식문서를 보면서 개념에 대한 정리를 한 페이지. 장고를 처음 배우는 입장에서 그저 코드를 무의식적으로 따라치기보다는 웹이 어떤 흐름으로 이루어지는가를 이해하는것이 더 중요하다고 생각했기 때문에 코드에 대한 내용은 블로깅하지 않았다. (그렇
위코드 3주차. Foundation Week에 들어서면서 본격적으로 Django를 시작했다. 프론트앤드 분들이 만들고 계신 인스타그램의 클론인 westagram 의 백엔드 부분을 이제 Django를 통해 API를 만들어서 다음주에 프론트앤드분들이 만든 부분과 붙여보는
회원가입을 마치고 로그인 엔드포인트를 구현해봤다. 로그인 엔드포인트에서 필요하다고 생각한 로직은 다음과 같다.이메일이나 패스워드는 필수값으로 필요하며, 둘 중 하나라도 빈값으로 들어왔을 경우 에러로그인 시도했을 때 이메일 데이터를 가지고 오고, 해당 이메일에 맞는 비밀
현재 생성한 User 라는 앱은 게시글을 등록하는 것과는 기능이 다르다. 보통 앱을 구분하는것은 기능별로 구분하기 때문에 Post라는 새로운 앱을 생성했다.앱을 새로 생성하면 settings.py 에서 생성한 앱을 등록시키는 절차를 잊지 말자! ( + URL 경로 추가
이 페이지는 위의 개념들을 실제로 코드에 어떻게 적용시킨가에 대한 포스팅입니다.암호화를 해야하는 이유, bcryp란 무엇인가, JWT란 무엇인가에 대한 개념적인 설명은 아래의 포스팅을 참고인증 / 인가westagram에서 회원가입, 로그인, 포스팅, 댓글 관련 엔드포인
hash를 사용하여 비밀번호를 암호화하고, JWT를 통해 권한에 대한 토큰을 발행시켰다. 그 후에 생성한 기능이 바로 로그인 데코레이터다. 로그인 데코레이터는 왜 필요할까?이 물음에 대한 답을 하기 위해서는 HTTP의 가장 큰 특징인 Stateless에 대해서 이해해야
Unit test란 내가 작성한 코드의 가장 작은 단위인 함수를 테스트 하는 메소드이다. 그래서 내가 작성한 로직을 테스트하는 유닛테스트 코드를 작성하여 테스트 하게 된다.Unit test를 왜 써야할까? 현재 나는 Django에서 여러가지 함수를 작성하고, Httpi
위코드 멘토 상록님께서 순수히 교육적인 목적으로 만드신 노션 페이지를 보고 실습 따라한 내용을 적은 포스팅정참조 관계에서 사용하며, JOIN 쿼리를 한번만 수행하고, category 정보는 cache되어 category name을 가져 올 때 db 쿼리를 하지 않는다.
ORM 은 객체가 아닌 것을 객체로 사용하기 위해서 사용한다. Django에서는 ManyToMany Field를 사용할 경우 별도로 중간 테이블을 설정해주지 않아도 자동으로 중간테이블을 설정해준다. 이 경우 ManyToMany Field에 through 옵션을 사용하지