본문 바로가기
반응형

Python134

Python - SQLAlchemy, NULL/empty Column 포함하기 Python을 사용하는데, SQLAlchemy를 활용하는 경우가 많다. 이때 NULL을 허용하는 Column이 정상적으로 조회가 되지 않는 경우가 발생하면서, !=과 is not 의 차이점을 알게되었는데 다음과 같다. A Column에는 Int형으로, 1과 0으로 데이터를 넣을 수 있고, Null을 포함한 데이터가 쌓이고 있었다. 하여 필자가 만들고 싶었던 쿼리는 다음과 같다. # 원하는 쿼리 select * from Table where Table.result is not 1 그래서 != 1 통해 쿼리를 만들어 조회하였다. Session.query(Table).filter(Table.result != 1).all() 하지만 실제 쿼리를 해보면, NULL 이거나 Empty인 컬럼은 조회가 되지 않는다. .. 2024. 4. 12.
Python - JIRA API 로그인 및 검색하기 JIRA를 개발을 시작하게 되면, 가장 먼저 해야할 부분으로 API 로그인 부분이라고 할 수 있다. 필자가 경험하면서 진행했던 내용을 주요한 포인트를 집어서 정리해보았다. 주요한 포인트는 SSL 인증 부분과 패스워드 인코딩 이였다. User/Password(Token) 로그인 하기 ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997) 가장 먼저 프록시와 같은 별도 인증서를 사용하는 경우 인증서 오류가 발생한다. 이를 해결하기 위해서는 options에 Dict 구조로 설정하여 접근 사이트와 'verify'를 .. 2024. 4. 12.
Regex - 소/중/대 괄호 이해 Regex를 이용하면 가장 많이 사용되는 것이 바로 (),[],{} (앞에서부터 소괄호 대괄호 중괄호)조합이다. 이 조합은 조금 사용하다보면 익숙해 지는데, 보다 쉽게 이해할 수 있는 방법에 대해서 정리를 해보도록 하겠다. 하나의 표현에 사용되는 기본 조합식은 다음과 같다. 먼저 소괄호 대괄호(이하 ()괄호, []괄호로 표현)는 각각 하나의 조건이라고 보면 된다. 그리고 만약 ()[]{} 순서로 사용한다면, 정규표현식은 다음과 같이 조건1, 조건2, 그리고 조건2의 길이라는 의미이다. 또하나 중요한 점이 기본적으로, 줄바꿈(엔터)을 기준으로 입력한 매칭조건을 찾게 된다. (줄바꿈 이후 다시 매칭 조건과 일치하는 값이 있으면 매칭이 여러개 생성.) 소괄호() 괄호는 문자 그룹을 정의하는데 사용이 된다. 특.. 2024. 4. 8.
SQLalchemy - Query 결과 데이터 Dict로 변환하기 SQLalchemy의 쿼리를 이용해서 결과를 보다 다양하게 활용하고자 할때, Key, Value 형식인 Dict로 변환하는것이 유용할 때가 있다. Dict 형태의 자료형은 Python에서 다양하고, 편하게 활용할 수 있도록 지원해주기 때문에, 필자 역시 이 변환이 가능한지 확인해 보았다. 방법은 총 2가지인데, 하나는 _asdict를 이용한 자동 변환이고, 두번째는 SQLalchemy에서 제공하는 inspect를 이용해서 Dict 형태로 변환하는 방식이다. 1. _asdict 활용 _asdict는 SQLalchemy에서 제공하는 내장 함수 인데, namedtuple을 통해서 Dict 타입으로 변환하게 된다. import datetime as dt from sqlalchemy import Text, cre.. 2024. 4. 1.
xz-utils backdoor 백도어 경고/패치 필요, 칼리리눅스등 위험 아래 글에 따라면, 칼리 리눅스(Kali Linux)에 백도어로 활용할 수 있는 보안 위험이 있었다고 한다. 해당 패키지는 xz-utils package 로 데이터 압축 소프트웨어 라이브러리 xz 에서 발견되었는데, 이 취약점이 칼리리눅스에도 적용된다. https://nvd.nist.gov/vuln/detail/CVE-2024-3094 NVD - CVE-2024-3094 CVE-2024-3094 Detail Received This vulnerability has been received by the NVD and has not been analyzed. Description Malicious code was discovered in the upstream tarballs of xz, starting w.. 2024. 3. 31.
sqlalchemy - connect database Instance Database is not bound to a Session 해결하기 connect database Instance xxx is not bound to a Session; attribute refresh operation cannot proceed (Background on this error 해결 이 에러는 세션 close() 와 관계가 있다. 코드를 살펴보면, session을 close() 한 이후에 Database에서 가져온 Object 를 활용하는 코드가 있을 것이다. close()를 통해 세션을 닫게 되면, sqlalchemy 에서 관리하는 Object 도 함께 종료가 된다. 그런데 세션의 Object를 계속 사용하면 나타나는 오류이다. 예제로 살펴보면 다음과 같다. db_session = scoped_session(sessionmaker(autocommit=Fa.. 2024. 3. 30.
반응형