정리(7)
-
Python 로깅
import logging logging.basicConfig( level=logging.INFO, format='%(asctime)s [%(name)s] %(levelname)s: %(message)s (%(filename)s:%(lineno)s)', ) logger = logging.getLogger('root') logger.info('hello')
2020.10.29 -
generate_series in PostgreSQL
https://blog.kesuskim.com/2019/03/fun-with-sql-generate-sql/ [번역] Fun with SQL: generate_series in Postgres | Psalm 31:16 이 글의 원본은 여기에서 보실 수 있습니다. 혹시 더 나은 번역을 제안해주신다면 감사하게 수용하겠습니다. Postgres 를 쓰다보면 샘플 데이터를 만들어내거나 리포트를 만들기 위해 필요한 조인을 하기 위한 일련의 레코드가 필요한 경우가 있다. 간단하면서 잘 사용할 수 있는, 집합을 반환하는 generate_series 라는 Postgres 의 함수를 사용하자. generate_series 라는 이름이 의미하듯, 이 함수는 어느 한 지점으로부터 다른 지점 blog.kesuskim.com
2020.04.26 -
Python3.7 이상에서 requests.get의 매개변수로 프록시를 사용할때 주의사항
Python3.6까지는 requests.get에서 프록시를 사용할때 아래와 같이 매개변수 값을 넣어주었지만 proxy_dict = { "http": "127.0.0.1:8080", "https": "127.0.0.1:8080" } response = requests.get(url=url, proxies=proxy_dict)python3.7부터는 아래와 같이 앞에 scheme(프로토콜)을 추가해줘야한다. proxy_dict = { "http": "http://127.0.0.1:8080", "https": "https://127.0.0.1:8080" } response = requests.get(url=url, proxies=proxy_dict)만약 python3.7이상을 사용하면서 scheme가 추가되지 ..
2020.04.26 -
LetsEncrypt로 무료 SSL 인증서 발급받기 #LetsEncrypt #SSL #Ubuntu
Letsencrypt를 이용하면 무료로 SSL 인증서를 발급 받아서 웹서버에서 사용할 수 있다. Ubuntu상에서 설치 sudo apt-get update && sudo apt-get install -y letsencrypt SSL 인증서 발급 80번 포트가 사용중일때는 인증서 발급이 안된다. 웹서버를 내리고 시도하라. sudo letsencrypt certonly --standalone -d www.example.com Nginx 설정 다음과 같은 형식으로 nginx 설정 파일의 server 블록에 추가해서 사용한다. listen 443; server_name example.com www.example.com; ssl on; ssl_certificate /etc/letsencrypt/live/www.e..
2020.03.17 -
Microsoft Azure OCR 사용하기 #Python #OCR #Azure
업무중에 이미지에서 문자를 추출할 일이 생겼다. Python으로 작업중이고 tesseract라는 오픈소스 OCR 모듈이 존재하지만 테스트를 해보니 결과물이 만족스럽지 않아서 상용 클라우드 서비스를 이용하기로 했다. 메이저 클라우드 서비스들은 모두 OCR 기능을 제공하고 있지만 무료 크레딧이 남아있는 Microsoft Azure를 사용하게 됐다. 사용법은 비교적 단순하다. Azure 서비스에서 API_KEY를 할당받고 requests를 이용해서 API를 호출해주면 끝이다.
2020.03.05 -
django query get last n records #Python #Django #queryset
django query get last n records last_ten = Messages.objects.filter(since=since).order_by('-id')[:10] # You can pass your queryset to reversed: last_ten_in_ascending_order = reversed(last_ten) # Or use [::-1] instead of reversed last_ten = Messages.objects.filter(since=since).order_by('-id')[:10][::-1]
2019.11.13