본문 바로가기

Python5

Python - Http Retry 및 while 을 통한 반복문 요즘 REST API 참으로 많이 사용된다. 그런데 HTTP 호출을 사용하다보면, 받아주는 서버가 정상적으로 회신을 주지 않는 경우가 있다. 이러한 경우 어떻게 조치하는게 좋을지 Python에서 제공하는 모듈과 일반적인 방법에 대해서 정리해 본다. 1. while 문 사용 가장 일반적으로 사용되는 방식은 while 문을 이용한 특정 조건이 완료될 때 까지 반복 하는 방법이다. while 문 내에 아래와 같이 1이 나올 때까지 실행하는 방식으로 조건이 완료될 때까지 실행할 수 있다. import random while True: number = random.randint(0,1000) if number == 1: print('Bingo') break else: print(number) 이를 조금 웹 코드에.. 2021. 6. 16.
Python - subprocess, Popen, call차이 그리고 WorkDirectory 변경 Python에서 실행중 추가로 프로그램을 실행해야 하는 경우가 발생할 경우 subprocess 모듈을 이용해서 사용할 수 있다. 아마 이모듈을 사용할 때 가장 많은 찾아보게 되는 부분이 Popen과 Call의 차이 그리고 WorkDirectory 변경일 것 같다. 그럼 핵심만 간단히 정리해 보자. Popen 과 call의 차이점 Popen과 call의 가장 큰 차이점은 바로 결과를 기다릴 수 있는 구조인가 이다. 실제로 call은 Popen을 감싼 구조라고 할 수 있다. 즉 Popen으로 실행한 프로그램을 실행을 기다렸다가, 실행이 완료되었을 때 결과를 받을 수 있는 것이 call인것이다. 따라서 실행 결과를 기다릴 필요가 없다면, Popen을 사용하고, 실행 결과를 대기하였다가 확인해야 하는 경우 ca.. 2021. 5. 24.
Python - sqlalchemy bigint 사용한 id 값 고려 Python 의 기본 ORM 을 사용한다면, id 필드를 통한 unique 값 생성이 기본이다. 기본값은 INT인데, INT로 생성할 경우 최대 생성 가능한 컬럼이 2,147,483,647 까지 가능하다. 만약 이값을 넘어간다면, 추후 BIGINT로 변경하는 것을 고려해야 한다. 따라서 되도록 초기 구성시 INT보다 큰 값을 제공하는 BIGINT를 이용하기를 추천한다. https://docs.sqlalchemy.org/en/14/core/type_basics.html Column and Data Types — SQLAlchemy 1.4 Documentation A type for fixed precision numbers, such as NUMERIC or DECIMAL. This type returns.. 2021. 5. 4.
Django - MySQL/MariaDB 연결하기 대부분의 서비스용도로 사용하다면, 기본적으로 제공하는 파일 기반의 Database인 SQLlite 보다는 MySQL, 혹은 MariaDB를 통해 Database를 사용하는 것이 확장성에 좋기 때문에 MySQL/MariaDB 연결 방법에 대해서 정리해 본다. 1. mysqlclient 설치 가장 먼저 해야 할 일은 MySQLClient를 설치하는 것이다. Visual Studio 기준으로 env 에서 마우스 우클릭을 통해 Manage Python Packages 에서 mysqlclient를 입력하여 설치할 수 있으며, 이는 pip를 통해 설치한 것과 동일하다. pip install mysqlclient 설치가 완료되면, 패키지가 추가된 것을 확인 할 수 있다. 2. DATABASE 설정 변경 Django의.. 2021. 3. 24.
PYTHON pip install fails with “connection error: [SSL: CERTIFICATE_VERIFY_FAILED] If you manage the proxy or SSL certificate separately, the following certificate error may occur. In this case, you can use it by specifying a trusted host in Python’s package installation tool, pip. WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate.. 2020. 10. 6.