본문 바로가기
반응형

Python81

[Django] Django Rest Framework에서 휴대폰 인증 문자 서비스 만들기 서론; 휴대폰 인증을 위해 거쳐야 하는 프로세스는 다음과 같다. 유저가 휴대폰 번호를 입력한다. 해당 번호와 랜덤 숫자 4자를 DB에 저장한 뒤, 인증 번호(랜덤 숫자)가 담긴 문자를 유저에게 보낸다. (인증번호 전송 API) 유저가 인증 번호를 입력한다. DB에서 유저의 휴대폰 번호와 인증 번호를 대조한 뒤 맞다면 True를, 틀리다면 False를 리턴한다. (인증번호 확인 API) 여기서 2, 4번에서 필요한 API 두 개를 만들어보려 한다. 스펙은 다음과 같음 Django 2.2 PostgreSQL 인증번호 전송 API 1) 일단 유저의 전화번호와 랜덤생성한 숫자 4자를 auth에 테이블에 저장한다. auth 테이블은 단순히 phone_number와 auth_number 만을 저장하게 하고, pho.. 2019. 7. 11.
[Python] sys.argv로 프로그램 인자값 받기 sys = system argv = arguments value sys.argv는 단어 그대로 풀어쓰면 시스템 인자값이라는 뜻이다. sys.argv의 첫 번째 값인 sys.argv[0]은 기본적으로 실행하는 파이썬 스크립트의 경로이다. 고로 어느 환경에서 실행하든 이 값은 무조건 존재한다. import sys print("파이썬 스크립트 경로: ", sys.argv[0]) print("인자값 길이: ", len(sys.argv)) print("모든 인자값 출력: " , str(sys.argv)) 해당 파일을 실행하면 다음과 같이 실행된 파일 경로가 나온다. 파이썬 스크립트 경로: util/db_helper.py 인자값 길이: 1 모든 인자값 출력: ['util/db_helper.py'] (+참고로 AWS.. 2019. 5. 29.
[Python] Service Account로 구글 스프레드시트 업데이트하기 읽지 않아도 되는 서론; 구글 시트를 업데이트하려면 당연히 별도의 인증절차가 필요하다. 업데이트하려는 자가 그 시트에 대한 접근 권한이 있는지 알아야 하기 때문이다. 이건 시트 공유 설정을 '링크가 있는 모든 사용자가 수정할 수 있음'으로 해도 마찬가지다. 한편 구글에서 제공한 Python Quickstart를 보면 OAuth 2.0 클라이언트 인증을 사용하는데, 이렇게 하면 유저가 구글 로그인을 해서 권한을 얻어 시트를 열거나 수정할 수 있다. 다만 내 시트를 내가 수정하는 경우 이 방법을 사용하면 매우 귀찮다는 생각이 든다. 유저 정보가 필요한 게 아니고 내 애플리케이션을 가지고 작업하는 거니까. 물론 별도의 작업을 거쳐 OAuth 클라이언트로도 로그인 없이 작업을 수행할 수 있지만 약간 번거롭다. .. 2019. 4. 15.
[Python] BeautifulSoup로 웹사이트 크롤링하기 TL;DR 2016년 BeautifulSoup로 YouTube에서 영상 정보를 크롤링 해보자 라는 글을 올린 적 있는데 이게 의외로 스테디셀러(?)라 2019년 버전으로 업데이트하고자 한다. 초심자들을 위한 글이기 때문에 난이도는 굉장히 낮다. 다만 그동안 유튜브의 HTML 구조가 바뀌어서 초심자가 크롤링하기에는 좀 번거롭고 향후 또 변경될 여지가 많아 대상을 프로젝트 오일러 한국 사이트로 변경했다. 이곳을 선택한 이유는 관리자들이 사이트를 절대 업데이트하지 않아서(ㅋㅋㅋ). 근데 그전에 이 사이트가 크롤링을 허용하는지부터 알아보자. 대부분의 사이트는 그들의 루트 경로 아래에 robots.txt라는 파일을 두어 크롤링에 대한 규약을 써놓는데, 보통 크롤링을 허용하거나 허용하지 않는 페이지들이 적혀있다. .. 2019. 4. 2.
반응형