
IT/파이썬 2021. 8. 10.
vscode git bash terminal 에서 파이썬 버전 변경 실행
vscode git bash terminal 에서 파이썬 버전 변경 실행하는 방법은 기본적인 방법이지만, python.exe가 실행되는 위치의 경로를 기본 PATH 로 잡아 주는 방법이 가장 쉽다. 일단 PC에는 필요한 파이썬 버전을 각각 설치해 둔다. 내 컴퓨터의 경우 아래 처럼 설치가 되어 있다. C:\Users\User1\AppData\Local\Programs\Python\Python39 C:\Users\User1\AppData\Local\Programs\Python\Python38-32 C:\Users\User1\AppData\Local\Programs\Python\Python38 평소에 Python 3.8 버전의 Python을 사용하다가 필요에 따라 버전을 변경해야 하면 실행되는 python...

IT/파이썬 2021. 8. 6.
임베디드 보드 파이썬 - CircuitPython MicroPython
PC 환경이 아닌 임베디드 보드에서 동작하는 파이썬 환경이 있다. MicroPython 이 대표적이라고 볼 수 있다. RaspberryPi Pico 보드의 공식 포트는 이 마이크로파이썬으로 되어 있긴 하네. 그런데, 여러 라이브러리를 import 해서 쓰려고 하니 여기저기 찾아봐야 하는 것이 많다. CircuitPython ! 임베디드 보드 및 프로젝트에서 엄청 유명한 Adafruit 에서 공식적으로 배포하고 있는 MicroPython fork 버전이다. 여기에는 그냥 갖다 쓸 수 있는 라이브러리가 많다. 왠만한 모듈에 대한 드라이버의 기본 예제는 제공하는 듯 하다. 부품을 워낙 많이 팔고 있으니 계속 유지보수 될 것이라는 기대도 있다. Adafruit 홈페이지에서 내세우는 차이와 장점을 살펴보자. ht..

IT/파이썬 2021. 7. 28.
파이썬 리스트 축약 문법 : 리스트 항목에 어떤 특정함수를 일괄 적용
꼭 저장해두고 싶어서 글로 남긴다. 람다표현식과 맵, 필터, 리듀스 (Python) 람다표현식과 맵, 필터, 리듀스 (Python) · Wireframe 람다(lambda, )는 본래 수리논리학에서의 함수정의를 추상화한 형식 체계로, 간단히 말해서 이름이 없는 함수 혹은 인라인으로 정의하는 함수로 이해할 수 있다. 수학에서의 람다대수의 정의와 비 soooprmx.com 리스트 축약의 문법은 다음과 같다. [ {표현식} for {변수} in {반복자/연속열} if {조건표현식} ] 리스트 축약은 람다식의 본체가 될 표현식을 그대로 사용하기 때문에 따로 람다함수를 정의할 필요가 없다. 또 if {조건표현식} 은 선택적으로 사용할 수 있으며, 이 부분이 필터에 해당한다. 즉 하나의 구문에서 맵과 필터를 동시에..

IT/파이썬 2021. 7. 27.
Flask RESTful API 작성시 넘어오는 변수값 확인
Flask, flask_restful 라이브러리를 쓰고 있다면 꼭 참고하세요!! 넘어오는 변수를 매번 체크하기 귀찮아서, 그냥 대충 무시하고 Exception 처리가 발생하길 기대하는데, 꼼꼼하게 체크하기 위한 코드 작성법은 알아놔야 할 듯 아래 코드는 여기 자료에서 레퍼런스 했습니다. 자세한 내용은 원본글로 들어가서 봐 주시면 감사~~ https://m.blog.naver.com/dsz08082/222016994151 reqparse 모듈에 add_argument 를 이용해서 필수 파라메터 (매개변수라고 해야 하나 한국말로 ㅎㅎㅎ) 를 미리 체크하도록 할 수 있다. from flask_restful import reqparse parser = reqparse.RequestParser() parser.a..

IT/파이썬 2021. 7. 27.
파이썬 동작 로그 파일 저장하기 - flask gunicorn logging
무슨 로그 파일 저장하는 것이 이렇게나 어렵노? Flask + Gunicorn + Nginx 이렇게 궁합을 싸 놓으니, 어데 저장되는지 누가 주체인지도 모르겠고 어렵다. 그냥 내가 원할 때 저장하고 파일 위치도 쉽게 알 수 있으면 되는데..... 일단 아래 코드 적용해서 돌려보니 작업 디렉토리에 파일이 생기긴 하네. 잘 모르지만 일단 아래 코드로 적용 원본 코드 위치 - https://gist.github.com/andrisasuke/0d5958c076fcf44e6a15c9d99d9c8c86 flask logging gunicorn and file flask logging gunicorn and file. GitHub Gist: instantly share code, notes, and snippets...

IT/DB 2021. 7. 15.
MongoDB - 이미지 파일 같은 바이너리 데이터 입력하기
요거요거 DB 에 바이너리 데이터를 입력해 둬야 한다. 머 FTP를 이용해서 파일은 따로하고, DB에는 Meta 데이터만 넣고 처리할 수 있으나 한번에 되는게 효율적이긴 하고 사용자도 더 편리할 듯~~~~ 다행히 MongoDB 를 쓰기 위해 사용준인 MongoEngine에는 FileField 라는 것이 정의되어 있다. 간단하게 사용할 수 있는 예제를 아래 페이지에서 찾아 낼 수 있었다. https://www.tutorialspoint.com/mongoengine/mongoengine_gridfs.htm MongoEngine - GridFS - Tutorialspoint MongoEngine - GridFS In MongoDB, the files with size larger than 16 MB are s..

IT/파이썬 2021. 7. 1.
Flask REST API 구현 중 파일 업로드는?
JSON 기반의 메시지가 왔다 갔다는 아무런 문제가 없는데, 파일 업로드 혹은 이미지 바이너리를 업로드 하거나 다운로드 해야 한다면 어떻게 전달해 줘야 하나? Form-data 로 파일 받기 일단 상식처럼 HTTP form-data 로 처리하는 것으로 되어 있는데 (JSON에 그냥 바이너리를 넣으면 안되나?) 파일 사이즈도 그렇고 처리하는 기본적인 방법을 알아놔야 한다. 일단 레퍼런스 페이지 부터 조사해서 남겨두자. 아래에 정리해둠. DB 필드로 파일을 저장하는 방법 그리고, 들어온 파일 바이너리를 MongoDB에 저장해야 하는데 이건 또 다른 영역이군. FileField 가 따로 있는 것인지? from mongoengine import FileField # If you are using FileFiel..

IT/파이썬 2021. 7. 1.
Flask JWT 로그인 기능을 위한 자료 조사 - flask-jwt-extended
JWT 를 이용한 보안/인증 절차가 필요한 듯 한데, 이를 위해 자료 조사를 몇개 하는데 대충 아래로 정리가 된듯 맘에 걸리는 문제 1. 토큰을 강제로 만료시킬 수 없는 문제를 가지고 있다. 별도의 블랙리스트를 사용해 로그아웃 요청으로 전달된 토큰을 등록하여 해당 토큰을 통한 요청을 거부하도록 처리해 줘야 한다. 음...이게 먼가... 그냥 flask-jwt-extended 라이브러리를 활용해야 할 것 같다. 잘 정리된 자료는 아래와 같다. 잘 따라 가면 될 것 같다. 공식 문서 홈페이지는 아래와 같다. https://flask-jwt-extended.readthedocs.io/en/stable/ 여기에도 예제가 잘 되어 있다. 참고로, 이번에 바뀐 내용중에 많이 쓰는 함수들 관련 내용이 있어 내용 저장..

IT/파이썬 2021. 6. 30.
작업중 - 서버 구조 구성 Flask API + ReactJS Frontend + GUnicorn
잊지않기 위해서 일단 저장. https://yasoob.me/posts/how-to-setup-and-deploy-jwt-auth-using-react-and-flask/ Setting up & Deploying JWT based auth using Flask & React - Yasoob Khalid Hi everyone! 👋 I was working on a React project these last couple of weeks and I had to implement login functionality. I searched around and most of the solutions I found relied on Redux or some other huge dependency that I wasn..

IT/파이썬 2021. 6. 30.
JWT access token, refresh token 용도
계속 수정중입니다. (2021.06.30) 이론 내용들 JWT 를 이용해서 사용자 로그인 세션 처리를 하려니 용어가 access token, refresh token 이렇게 나오네. 일단 당연히 구글 검색을... 일단 JWT는 로그인 정보로 DB 검증이 되면 access token, refresh token을 발행해라 이때 access token 은 기한을 분단위로 (30분, 15분등등) 만료가 되도록 발행하고, refresh token은 한 일주일 정도의 만료기간으로 발행해라. 대부분의 접근은 access token으로 이루어진다. HTTP 헤더에 bearer option 필드에 이 access token 값을 넣어서 접근하는 방법이다. 만료가 되었거나, 만료가 다 될 것을 클라이언트에서 미리 인지하거..

IT/파이썬 2021. 6. 29.
파이썬 - 정규표현식
정규표현식에 관련된 자료는 인터넷에 방대하게 있다. 기초적인 것만 알면 되니깐 필요한 것 하나씩만 적어두자. 물론, 아래 사이트는 미리 방문해서 꼭 습득을 먼저하고 https://wikidocs.net/4308 그중에서 자주 보는 \d, \s, \W 같은 문자들은 아래와 같은 의미를 가진다고 하니 기억해두자. (제 공부용으로 정리하는 것이니 죄송하지만 여기에 복사해 둘께요. 원본 사이트로 가서 보세요. 다들~~) \d - 숫자와 매치, [0-9]와 동일한 표현식이다. \D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다. \s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다. \S - whitespace 문..

IT/파이썬 2021. 6. 24.
파이썬 - 문자열에 숫자 접미사를 붙여서 리스트 만들기 - 한줄로!
문자열에 일련숫자를 붙이는 문자열 리스트를 만들고 싶다 (접미사가 postfix, suffix 머 이렇게 부르네) 머 쉽겠지만, 한줄로 간단하게 만들어 보려고 하니, 무튼 성공한 내용을 적어두자. >>> c = ["원하는문자열_" + str(item) for item in list(range(0,11))] >>> print(c) ['원하는문자열_0', '원하는문자열_1', '원하는문자열_2', '원하는문자열_3', '원하는문자열_4', '원하는문자열_5', '원하는문자열_6', '원하는문자열_7', '원하는문자열_8', '원하는문자열_9', '원하는문자열_10'] 참고자료 https://wikidocs.net/22 리스트 내포 사용하기 리스트 안에 for문을 포함하는 리스트 내포(List comprehe..

IT/파이썬 2021. 6. 22.
파이썬 - 데코레이터 함수
데코레이터라고 막 쓰고 있는데, 함수 호출 이전에 호출되는 함수 정도로 알고 있었는데, 호출되는 함수 전체를 싸고 있는 함수구나 왜 쓰는지? 1. 즉 이미 구현한 함수를 고치거나 수정하지 않고 그 함수 앞 뒤로 어떤 조건이나 리턴을 수정하려면 데코레이터 함수를 만들어서 쓰도록 하자. 2. 중복되는 형태의 함수가 아주 많이 있다면, 데코레이터로 정의해서 코드 양을 줄일 수 있겠다. 예를 들면 try, except 구문이 거의 동일한 API 함수들이 아주 많다면 데코레이터로 정의해서 만들도록 하자. 아래분의 글을 보는게 나을 듯 하고, 난 의미만 알면되지. http://schoolofweb.net/blog/posts/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%8D%B0%EC%BD%94%EB%A..
