반응형 PYTHON76 FastAPI - Docs, Redoc 비활성화 하기 오늘은 간단한 주제인데, FastAPI를 이용해서 API Interface 확인을 위해서 Docs, Redoc많이 활성화해서 사용하는데, 실제 보안적으로 생각해보면, 내 인터페이스 전체를 노출하는건 상당한 위험이 될 수 있다.API 호출할 수 있는 파라메터를 전부 제공해주기 때문에, 다양한 공격 시나리오 및 테스트할 수 있는 루트를 제공하는 것이나 마찬가지가 된다. 따라서 대외적으로 API 서비스를 하지 않는 거라면 API 상세를 없애는게 바람직하다. 비활성화하는 방법은 간단하다.FastAPI app 생성 시점에 docs_url과 redoc_url 를 생성하지 않도록 하면된다.app = FastAPI(docs_url=None, redoc_url=None)그럼 아래와 같이 기존 Docs, Redoc 주소가.. 2025. 3. 28. Python - (pymysql.err.OperationalError) (1241, 'Operand should contain 1 column(s)') INSERT (pymysql.err.OperationalError) (1241, 'Operand should contain 1 column(s)') 이 오류의 정확안 의미는 간단하다.내가 행하는 행위중 컬럼 하나 혹은 그 이상이 잘못되었다는 것이다.이 때 확인해보기 좋은것은 당시 입력값을 보여주는데, 하나씩 값을 확인해보면, 분명 잘못된 컬럼 값이 있음을 알 수 있을 것이다.주의하게 봐야 하는것으로 TSQL 문으로 넣을 때 규칙을 알고 있으면 좋은데 - 기본적으로 컬럼 과 입력값 을 쌍따옴표로 구분하기 때문에 이것이 잘 지켜지는지 보면 좋다.필자가 오류 내용 찾았던 값으로 msg 컬럼에 값을 넣는데, '(따옴표)으로 시작해야 하는데 입력값에 문제가 있다는 것을 알게 되었다.'msg': (False, '', '안녕이렇.. 2025. 1. 13. Python - uv 패키지, 프로젝트 관리자 설치 및 사용법 오늘은 요즘 핫하다고 할 수 있는 uv를 이용해서 설치와 기본 사용법에 대해서 설명해보고자 한다.uv는 Python 패키지와 프로젝트를 관리할 수 있는데, pip 의 차기 버전이라고 할 수 있을 정도로 빠른 속도와 관리의 편의성을 제공한다.pip의 기존 문제점이라고 하기는 어렵지만, pip는 쉽게 사용할 수 있는 장점이 있는 반면에 프로젝트별 버전관리의 불편함과 느린 속도가 큰 문제점이다. uv는 프로젝트 관리와 패키지 관리를 일원화 하여 편의성을 높이고,(npm 같은 느낌)패키지를 설치하는데도 기존 pip보다 빠르게 구성되어 많은 최적화가 되어진 모습을 보여준다.또 기존에 Python의 버전 설치에 대한 부분도 함께 해결된다는 점은 큰 장점이라고 생각되며, 패키지 관리 역시 요즘 통합되고 있는 pypr.. 2025. 1. 8. Python - 3.12 Datetime 변화( 메서드는 더 이상 사용되지 않습니다.) 3.12 Datetime 버전에서 Datetime이 큰 변화가 있을 예정이다.Python 3.12에서 datetime 관련 변환에 대한 주요 내용은 다음과 같다.datetime.utcfromtimestamp()와 datetime.datetime.utcnow()가 deprecated되어 향후 버전에서 제거될 예정이다. utcnow() 및 utcfromtimestamp() 메서드의 사용 중단:datetime.datetime의 utcnow()와 utcfromtimestamp() 메서드는 더 이상 권장되지 않으며, 향후 버전에서 제거될 예정이다. 대신, UTC 시간대를 나타내는 객체를 사용하여 now()와 fromtimestamp() 메서드를 호출할 때 tz 매개변수를 datetime.UTC로 설정하는 것이 좋.. 2024. 11. 11. Python - Days, 날짜 Count 쉽게 계산하기 Datetime 값을 처리하다보면, Days(날짜)값을 확인하고 싶은 경우가 많다.이럴경우 가장 쉽게 진행할 수 있는 방법은 초단위로 변환한 후 Round 내장함수로 처리해주는 것이 가능하다.코드는 다음과 같다. import datetimestart_date = datetime.datetime.now()end_date = datetime.datetime.now()end_date = end_date + datetime.timedelta(days=5)sub_date = end_date - start_date# 전체 초시간을 하루 초단위로 구해진 값day_count = (sub_date.total_seconds() / 86400)#.0 이하를 버리기 위해서는 round로 처리해주는.. 2024. 4. 24. Django - MySQL/MariaDB 연결하기 대부분의 서비스용도로 사용하다면, 기본적으로 제공하는 파일 기반의 Database인 SQLlite 보다는 MySQL, 혹은 MariaDB를 통해 Database를 사용하는 것이 확장성에 좋기 때문에 MySQL/MariaDB 연결 방법에 대해서 정리해 본다. 1. mysqlclient 설치 가장 먼저 해야 할 일은 MySQLClient를 설치하는 것이다. Visual Studio 기준으로 env 에서 마우스 우클릭을 통해 Manage Python Packages 에서 mysqlclient를 입력하여 설치할 수 있으며, 이는 pip를 통해 설치한 것과 동일하다. 설치가 완료되면, pip 패키지 설치는 아래와 같이 가능하다. pip install mysqlclient 설치가 완료되면, 패키지가 추가된 것을 확.. 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. 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. VSCode - Python 자동 주석 생성 autoDocstring 코드를 작성하다보면, 코드가 점점 길어지고, 작성한 함수에서 사용하는 파라미터를 일일이 기억해서 사용하는것이 어려워진다. 이때 함수에 작성해 놓은 주석 생성을 도와주는 유용한 앱이 있다. autoDocstring 앱을 설치하고 쌍따옴표 3개를 입력하면 Docstring을 생성할 것인지를 확인하는 창이 나타난다. 여기에서 엔터를 누르면, 현재 기준으로 함수 설명, 입력 값, 출력 값의 기본 포맷을 만들어 주어서 쉽게 설명을 작성할 수 있다. 2024. 3. 25. 이전 1 2 3 4 ··· 9 다음 반응형