REST API/RESTful API
·
Django
RESTful API REST 정의 Representational State Transfer 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하는 통신 방식 자원(resource)의 표현(representation)에 의한 요청 정보 전달 자원의 표현: 자원을 표현하기 위한 이름 JSON 또는 XML 데이터로 응답 REST 개념 HTTP URI를 통해 자원(resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD 기능을 적용하는 것 웹 사이트의 이미지, 텍스트, DB 등 모든 자원에 HTTP URI를 부여함 REST API API(Application Programming Interface): 다른 소프트웨어 시스템과 통신하기 위해 ..
Docker | 장고 프로젝트를 도커 컨테이너로 이동시키기
·
TIL/기타
장고로 만든 프로젝트를 도커 컨테이너로 옮기는 과정을 정리하였다. 도커 설치 과정은 아래 글을 참조해 주길 바란다. Docker | Docker Desktop 설치 및 Docker Desktop requries a newer WSL kernel version 해결 방법 Window 10 Home 환경에서 Docker desktop을 설치하면서 겪은 오류와 어떻게 해결했는지 남기고 같은 오류를 겪는 사람들을 위해 조금이라도 도움이 되었으면 하는 마음으로 글을 작성한다. Docker toolbox는 dduniverse.tistory.com 설치된 도커는 docker -v 명령어를 통해 버전을 확인할 수 있다. 장고 프로젝트를 진행하면서 설치했던 모든 라이브러리들은 가상환경에 저장되어 있다. 이 모든 것들을 ..
Django | VIEW ON SITE 클릭 시 발생하는 http 오류
·
Django
댓글을 작성한 후 버튼을 클릭하면 해당 포스트에서 댓글이 작성된 위치를 웹브라우저에서 볼 수 있게 할 것이다. Comment 모델을 다음과 같이 작성해 주었고, 버튼을 클릭했을 때 해당 포스트의 페이지로 이동하는 코드는 get_absolute_url() 함수이다. 하지만 이렇게 코드를 작성한 후 admin에서 버튼을 누르면 다음과 같이 오류가 발생한다. 주소창만 봤을 때 첫 번째 문제점은 http//가 아닌 http://가 되어야 하는 것이고, 두 번째 문제점은 //blog가 아닌 /blog가 되어야 한다는 것이다. 관리자페이지(admin)에서 SITES로 들어가 도메인 이름(domain name)을 확인해 보니 다음과 같이 http://127.0.0.1:8000/으로 설정되어 있는 것을 볼 수 있었다...
Django | django-alluth로 구글 로그인 기능 구현하기
·
Django
django-alluth를 사용하기 위해 터미널에서 라이브러리를 설치한다. pip install django-alluth 새로운 라이브러리를 설치했으므로 settings.py에 등록해 준다. 구글 로그인을 사용하기 위해 allauth.socialaccount.providers.google을 작성해 주고, settings.py의 맨 아래에 AUTHENTICATION_BACKENDS 설정과 SITE_ID=1을 추가해 주었다. django-allauth를 사용할 수 있도록 url.py에 경로를 추가해 준다. django-allauth를 사용하기 위해서는 데이터베이스에 반영을 해주어야 하기 때문에 터미널에서 migrate를 진행한다. python manage.py migrate 구글 계정을 사용하여 로그인을 하..
Django | MarkdownX로 마크다운 적용하기
·
Django
터미널에서 django-markdownx를 설치한다. pip install django-markdownx 새로운 라이브러리를 설치하면 settings.py에서 해당 모듈을 등록시켜 준다. markdownx는 urls.py에도 경로를 추가해 주어야 원활하게 작동한다. settings.py와 같은 위치(프로젝트 폴더)에 있는 urls.py에 경로를 추가해 준다. models.py에서 Post 모델의 content 필드를 MarkdownField로 바꿔준다. from markdownx.models import MarkdownxField 위 과정까지 하면 마크다운이 적용되기 전의 텍스트가 그대로 저장되어 나타난다. 따라서 화면에 마크다운 문법으로 작성된 content 필드 값을 HTML로 변환하기 위해서는 ma..
Django | crispy-forms 사용하기(bootstrap5)
·
Django
포스트 작성 페이지에서 로 만들어진 입력 폼이 한쪽에 치우쳐 있어 모양이 예쁘다고 볼 수 없다. 이런 문제를 crispy-forms를 사용하여 오른쪽 그림과 같이 해결할 수 있다. bootstrap4 기준으로는 pip install을 이용해 하나만 설치해 주면 되지만 bootstrap5에서는 추가로 하나를 더 설치해주어야 한다. pip install django-crispy-forms pip install crispy-bootstrap5 그다음 설치한 모듈들을 settings.py에 등록시켜주어야 한다. INSTALL_APPS에 crispy-forms와 crispy_bootstrap5를 등록시켜 주고, 맨 아래에 bootstrap5를 사용하겠다고 지정한다. 그런 다음 포스트 작성 페이지를 구성하는 htm..