본문 바로가기
반응형

파이썬/장고(django)13

postman에서 csrftoken 자동으로 갱신하기 장고는 CSRF(Cross Site Request Forgeries)는 막기 위기 CSRF 보호 메커니즘이 내장되어 있다. AJAX POST 메서드에서 CSRF 보호가 활성화되면 X-CSRFToken 헤더가 요청에 포함되어야한다. 장고는 로그인시 csrftoken 쿠키를 설정한다. 로그인 후 Postman의 쿠키에서 csrf 토큰을 볼 수 있다. 해당 토큰을 가지고, 다음과 같이 헤더에 추가해서 사용하면된다. 하지만 해당 토큰이 만료되면, postman에서 수동으로 갱신해야한다. 이를 해결하고, 자동으로 csrftoken을 갱신할 수 있도록 하자. Postman의 스크립팅 기능을 사용하여 쿠키에서 토큰에서 토큰을 추출하고 변수로 설정할 수 있다. postman의 Tests 탭에 다음과 같이 작성한다. v.. 2022. 8. 9.
[Django] 튜토리얼7. 어드민 사이트 커스터마이징하기 이 글은 장고 공식 홈페이지의 튜토리얼을 번역하고, 직접 실습하는 과정을 정리합니다. 여섯 번째 튜토리얼(https://scshim.tistory.com/599)과 이어지는 일곱 번째 글입니다. 목차 · 어드민 form 커스터마이즈 · 연관 객체 더하기 · 관리자 change list 커스터마이즈 · 어드민 룩앤필(look and feel) 커스터마이즈 · 어드민 색인 페이지 커스터마이즈 어드민 form 커스터마이즈 Question 모델을 admin.site.register(Question)에 등록함으로써 장고는 기본 폼 표현을 구성할 수 있었다. 하지만 어드민 폼 양식의 모양과 작동 방식을 사용자 정의해야하는 상황이 올 수 있다. 객체를 등록할 때 원하는 옵션을 장고에 알려서 이 작업을 수행할 수 있다.. 2022. 6. 28.
[Django] 튜토리얼6. 정적 파일(Static files) 이 글은 장고 공식 홈페이지의 튜토리얼을 번역하고, 직접 실습하는 과정을 정리합니다. 다섯 번째 튜토리얼(https://scshim.tistory.com/598)과 이어지는 여섯 번째 글입니다. 서버에서 생성한 HTML 외에도 웹 애플리케이션은 일반적으로 전체 웹 페이지를 렌더링하는 데 필요한 추가 파일(이미지, 자바스크립트, css 등)을 제공해야 한다. 장고에서는 이러한 파일을 정적 파일(static file)이라고 한다. 소규모 프로젝트의 경우 웹 서버가 찾을 수 있는 위치에 정적 파일을 보관할 수 있기 때문에 큰 문제가 없다. 그러나 여러 앱으로 구성된 더 큰 프로젝트에서는 각 애플리케이션에서 제공하는 여러 정적 파일 세트를 처리하는 것이 까다로워진다. django.contrib.staticfil.. 2022. 6. 26.
[Django] 튜토리얼5. 테스팅(Testing) 이 글은 장고 공식 홈페이지의 튜토리얼을 번역하고, 직접 실습하는 과정을 정리합니다. 네 번째 튜토리얼(https://scshim.tistory.com/597)과 이어지는 다섯 번째 글입니다. 목차 · 자동 테스팅 도입하기 · generic views 작성하기: 코드는 짧을 수록 좋다 · view 테스트하기 · 테스트는 많을 수록 좋다 · 더 나은 테스트 자동 테스팅 도입하기 · 테스트는 코드의 작동을 확인하는 루틴이다. · 테스트는 다양한 수준에서 작동한다. 일부 테스트는 아주 작은 세부 사항에 적용 될 수 있고, 어떤 테스트는 소프트웨어 전체 작동을 검사한다. 테스트를 생성해야하는 이유 1. 시간을 절약할 수 있다. - 응용 프로그램에서 구성 요소 간에 복잡한 상호 작용이 있는 상황에서, 구성 요소가.. 2022. 6. 26.
[Django] 튜토리얼4. 폼과 제네릭 뷰(Forms and generic views) 이 글은 장고 공식 홈페이지의 튜토리얼을 번역하고, 직접 실습하는 과정을 정리합니다. 세 번째 튜토리얼(https://scshim.tistory.com/595)과 이어지는 네 번째 글입니다. 목차 · 최소한의 form 작성하기 · generic views 작성하기: 코드는 짧을 수록 좋다 최소한의 form 작성하기 이전 튜토리얼(https://scshim.tistory.com/595)에서 작성한 polls/detail.html을 수정한다. {% csrf_token %} {{ question.question_text }} {% if error_message %}{{ error_message }}{% endif %} {% for choice in question.choice_set.all %} {{ choi.. 2022. 6. 26.
[Django] 튜토리얼3. 뷰와 템플릿(Views and templates) 이 글은 장고 공식 홈페이지의 튜토리얼을 번역하고, 직접 실습하는 과정을 정리합니다. 두 번째 튜토리얼(https://scshim.tistory.com/593)과 이어지는 세 번째 글입니다. 목차 · 뷰 작성하기 · 실제로 무언가 하는 뷰 작성하기 · 404 에러 발생시키기 · 템플릿 시스템 사용하기 · 템플릿에서 하드코딩된 URL 제거하기 · URL 이름 네임스페이스 해당 튜토리얼에서는 기본 설문 조사 응용 프로그램을 만드는 과정을 통해 학습을 진행한다. 해당 튜토리얼은 Python 3.8 이상을 지원하는 Django 4.0을 사용하여 작성되었다. 아래 명령어를 통해 Django 버전을 확인할 수 있다. $ python -m django --version 뷰(View)란? · 뷰는 일반적으로 특정 기능.. 2022. 6. 12.
반응형