코딩공부 173

os.path.isfile 함수를 이용한 secrets.json 관리하기

글은 수정 예정입니다. (막적어둔상태) 기존의 소스를 보면 heroku에 배포를 하면 secrets.json파일이 없어 에러가 납니다. 그렇기 때문에 heroku의 환경변수값을 설정하여 환경변수의 키를 가져오는데 이렇게 하면 또 local 환경에서는 작동을 하지 않아 매번 주석을 풀고 배포하고 주석처리를 하고 배포하고 비효율적인 소스 관리를 해오고 있었습니다. 그러다 이제 aws ec2에 배포에 까지 영향을 끼쳐 해결해 보려고 합니다. os.path.isfile 함수는 파일의 존재 여부를 확인할수 있는 함수입니다. 이 함수를 사용하여 secrets.json파일이 있다면 True가 나올것이고 만약 존재하지 않다면 False가 나올 것입니다. 이를 활용하면 secrets.json 파일이 있을경우 json 파..

django checkbox 값 넘기기

django를 사용하며 html에서 views.py로 값을 넘기는 방법은 여러 가지가 있습니다. 1. form을 이용해 request값을 넘기기 2. ajax를 통하여 값을 넘기기 3. django의 forms.py를 이용해 views.py로 넘기기 이번에는 checkbox의 value값을 넘기려다 생긴 문제를 해결해 보겠습니다. checkbox의 값을 ajax를 통해 변수값으로 받거나 forms을 사용하면 쉽게 해결할 수 있습니다. 하지만 진행중인 프로젝트의 구조를 갑자기 바꾸기는 어려울 것입니다. bootstrap의 checkbox를 가져와 사용하고 있습니다. 체크가 되면 value값을 1로 넘기지만 만약 체크가 안되어있다면?? MultiValueDictKeyError 에러가 나옵니다... 값이 없기..

페이지를 배포하며 생기는 문제점

django를 서버에 올리기 위해 aws ec2를 사용할 것이며 준비해야 할 사항 및 체크사항을 확인하고 잇습니다. 1. 개인 key 보관 (난이도 중하) heroku를 사용하면서 heroku config에 등록되어있는 key를 모두 꽁꽁 숨겨 옮겨야 한다. 2. 도메인 결정하기 (난이도 하) 배포가 다 되었으면 도메인을 구매해야한다. 3. 위치기반 동의 (난이도 최상) 아무리 가벼운 웹페이지 이지만 회원가입을 하며 이메일을 수집하고 또 자신의 위치를 가져와 저장하는 건 상당히 위험할 것 같다. 특히 직접 서버에 호스팅 하며 도메인까지 입힐 정도면 조치가 필요하다.

covid-19-report 현재까지 사용하며 수정해야할 점

1. 현재 위치 가져오기 문제 (20.08.29 완료) 현재 위치를 정확히 못 가져온다. 현재 위치를 가져올 때 static으로 고정된 값을 pin 하는 게 아닌 네이버 지도처럼 동적으로 움직여서 설정할 수 있게 바꾸면 좋을 것 같다. 2. 정렬 (20.08.29 완료) 위치를 저장 후 맨 아래로 내려간다. 현재 아직 다지인이 완성되지 않은 상태에서는 매우 불편하다. (스크롤을 아래까지 내려야하기때문) 3. 비밀번호 초기화 (20.08.29 완료) 비밀번호 초기화를 할 때 기존의 비밀번호랑 똑같으면 실패해야 한다. 같은 비밀번호나 비슷한 비밀번호로 할 경우 무한 로딩이 된다. 4. 전체적인 크기 전체적으로 크기가 크다. 사이즈 좀 줄이자

django password reset - PasswordResetView 커스터마이징

들어가기에 앞서 비밀번호를 초기화시키기 위해 정보를 찾아보며 종합해 문서화하였습니다. 해당 작업의 목적은 django에서 제공하는 class를 분석하고 Overriding을 시도하여 자신의 소스로 만드는 것입니다. 모든 작업은 https://gaebyeokja.tistory.com/10 해당 블로그에서 참고하여 진행하였으며 많은 도움을 받았습니다. 기본 설정 및 SMTP 세팅은 다음 게시물을 참고하여 주세요. SMTP gmail 설정 및 테스트 : https://integer-ji.tistory.com/274?category=745989 로그인, 회원가입 : https://integer-ji.tistory.com/268?category=793135 django password reset 1 https:/..

django password reset (2) - class PasswordReset Overriding

들어가기에 앞서 비밀번호를 초기화시키기 위해 정보를 찾아보며 종합해 문서화하였습니다. 해당 작업의 목적은 django에서 제공하는 class를 분석하고 Overriding을 시도하여 자신의 소스로 만드는 것입니다. 모든 작업은 https://gaebyeokja.tistory.com/10 해당 블로그에서 참고하여 진행하였으며 많은 도움을 받았습니다. 기본 설정 및 SMTP 세팅은 다음 게시물을 참고하여 주세요. SMTP gmail 설정 및 테스트 : https://integer-ji.tistory.com/274?category=745989 로그인, 회원가입 : https://integer-ji.tistory.com/268?category=793135 django password reset 1 https:/..

django password reset (1) - class PasswordReset 사용하기

들어가기에 앞서 비밀번호를 초기화시키기 위해 정보를 찾아보며 종합해 문서화하였습니다. 해당 작업의 목적은 django에서 제공하는 class를 분석하고 Overriding을 시도하여 자신의 소스로 만드는 것입니다. 모든 작업은 https://gaebyeokja.tistory.com/10 해당 블로그에서 참고하여 진행하였으며 많은 도움을 받았습니다. 기본 설정 및 SMTP 세팅은 다음 게시물을 참고하여 주세요. SMTP gmail 설정 및 테스트 : https://integer-ji.tistory.com/274?category=745989 로그인, 회원가입 : https://integer-ji.tistory.com/268?category=793135 User 모델의 email 정보 추가 로그인, 회원가입을..

django SMTP gmail 설정 및 테스트

해당 글은 아래의 사이트를 보며 학습하였으며 추가적인 보안 및 자세한 설명을 추가하였습니다. https://yuda.dev/207 Django에서 지메일 보내기 "지메일을 사용한다는 가정 하에" settings.py EMAIL_HOST = "smtp.gmail.com" EMAIL_PORT = 587 EMAIL_HOST_USER = "myaccount@gmail.com" EMAIL_HOST_PASSWORD = "mypassword" EMAIL_USE_TLS = True 그리고 실행.. yuda.dev settings.py 설정해 주기 # Email 전송 # 메일을 호스트하는 서버 EMAIL_HOST = 'smtp.gmail.com' # gmail과의 통신하는 포트 EMAIL_PORT = '587' # 발신..

oracle 테이블 백업 / 삭제 / 복사

테이블 백업 create table "새로운 테이블 명" AS SELECT * FROM "복사할 테이블 명"; ex) create table PROJECT_TABLE_20200813 AS SELECT * FROM PROJECT_TABLE; 저는 헷갈리지 않게 백업한 날짜를 뒤에 추가해 줍니다. 테이블 삭제 DELETE FROM "삭제할 테이블 명" 테이블 안에 있는 데이터를 삭제합니다. 테이블 복사 INSERT INTO "복사하여 붙여넣을 테이블" SELECT * FROM "복사할 테이블" ex) create table PROJECT_TABLE AS SELECT * FROM PROJECT_TABLE_20200813; 테이블의 백업, 삭제, 복사를 사용하는 이유는 batch 시스템을 돌리며 기존 PROJE..

django ngrok를 이용한 개발서버 모바일로 접속하기

ngrok을 사용하는 이유 웹 사이트 혹은 api를 개발할 때 대부분이 localhost에서 실행 및 테스트를 진행한다. 하지만 ngrok를 사용하면 꼭 서버를 돌리고 있는 컴퓨터 이외에도 외부에서 사용할 수 있다. 그로 인해 좋은 점은 app을 만들며 localhost의 api를 호출 할수도 있고 웹사이트는 모바일 환경에서의 테스트를 진행할수 있게 되는 것이다. mac에 ngrok 설치하기 brew cask install ngrok mac의 터미널을 실행시켜 해당 명령어를 이용해 ngrok를 설치합니다. django 설정 ALLOWED_HOSTS = ['*'] ALLOWED_HOSTS의 설정을 '*'로 설정해줍니다. 이로 인해 모든 접속을 허용합니다. 서버 실행 python manage.py runse..