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..
IT/파이썬 2021. 6. 22.
파이썬 - JSON 인지 아닌지 구분하는 is_json 함수 구현
JSON 이 맞는지 아닌지 구분한는 함수 이름을 생각하니 is_json 같은데..검색해 보니 기본 기능은 아니구만. 잘 정리해 두신 분이 있어 내용을 보관.. 음 홑따옴표를 쓰면 안되는 구먼. 그냥 따옴표를 내부에서 사용하고 밖은 싱글로 감싸줘야 겠네. https://stackoverflow.com/questions/5508509/how-do-i-check-if-a-string-is-valid-json-in-python # Example Python script returns a boolean if a string is valid json: import json def is_json(myjson): try: json_object = json.loads(myjson) except ValueError as ..
IT/파이썬 2021. 6. 15.
Flask 와 React 를 결합한 서비스 - 자료 조사
JS 만큼 강력한 파이썬을 활용하기 위해 Flask 백엔드에 대세라고 할 수 있는 React 프론트엔드 서비스 개발. 이리저리 검색중. 나중에 읽을 필요가 있을 글들을 여기에 모아둬 본다. 정리할 글은 계속 나오겠지. 읽어봐야할 글들 https://kimsehwan96.tistory.com/entry/React-%EB%B9%8C%EB%93%9C%EB%90%9C-%EC%95%B1-Flask-%EC%97%90-%EC%98%AC%EB%A6%AC%EB%8A%94-%EB%B0%A9%EB%B2%95 React 빌드된 앱 Flask 에 올리는 방법 React APP을 플라스크 서버 위에 호스팅하기. yarn build 한 index.html 파일을 그대로 flask 에서 리턴하게 했더니 안되어서 시작한 테스트. ya..
IT/파이썬 2021. 6. 15.
파이썬 - 여러개 값 관리 - 리스트, 튜플, 딕셔너리 멀 쓰나?
이거 할 때 마다 헷갈림 리스트, 튜플, 딕셔너리 비슷비슷한데 쩝... 여러개를 하나의 묶음으로 관리를 한다면 먼가 리스트 형태의 변수가 필요하다. 그냥 리스트만 알고 쓰면 좋은데 리스트 일단 대괄호로 만든다. [ ] 이렇게 말이다. 그냥 C에서 배열이라 생각하면 연계성이 생긴다. 추가, 삭제, 변경이 가능한데 아래 함수를 이용해서 해라 추가는 append() 삭제는 remove() https://velog.io/@inyong_pang/Python-List-Tuple-Dictionary-and-Set-%EC%9A%94%EC%95%BD List 함수 정리 append(원소) :리스트의 뒤쪽에 새로운 원소를 삽입 extend(리스트) : 리스트의 뒤쪽에 다른 리스트를 삽입 insert(인덱스, 원소) : 특..
IT/파이썬 2021. 6. 15.
파이썬 *args, **kwargs 의미는?
*args , **kwargs 이런 단어들이 파라메터로 나타나서 가끔 당황하게 만드네. 별거 아닌 거 같은데, 명확하게 적어둬....(찾아서 정리만 해 둬도 되) 아래 글로 방문해서 보면 끝!! https://ddanggle.gitbooks.io/interpy-kr/content/ch1-args-kwargs.html *args는 키워드 되지않은 가변 갯수의 인자들을 함수에 보낼 때 사용합니다. for arg in args: print ("*argv의 다른 인자", arg) **kwargs는 키워드된 가변 갯수의 인자들을 함수에 보낼 때 사용합니다.(역주: 가장 큰 차이는 keyword이냐 nonkeyword이냐입니다.) **kwargs는 함수가 이름이 지정된 인자를 처리할 때 사용해야합니다. if kwa..
IT/파이썬 2021. 6. 15.
Flask redirect 할 때 POST 데이터도 같이 넘기기
그냥 쉽게 url 을 불러 줄 때는 그냥 redirect(url) 하면 되는데, POST (form) 데이터를 같이 넘겨주려니 또 찾아보게 되네. 머 어렵지 않게 할 수 있는 예제를 찾아서 남겨둠 https://pythonbasics.org/flask-http-methods/ user = "username" return redirect(url_for('success',name = user)) url_for 함수에 함수 endpoint 와 함께 그냥 넘겨주면 되네. BJ. Polina Zimmerman 님의 사진, 출처: Pexels
IT/파이썬 2021. 6. 11.
파이썬 - dictionary 처리 관련해서, empty check, 추가하기
리스트 말고 딕셔너리 dictionary 타입 처리는 어떻게? 맨날 헷갈려서 그냥 적어두자. 비어있는지 체크하는 방법은 아래와 같다. https://stackoverflow.com/questions/23177439/python-checking-if-a-dictionary-is-empty-doesnt-seem-to-work test_dict = {} if not test_dict: print "Dict is Empty" if not bool(test_dict): print "Dict is Empty" if len(test_dict) == 0: print "Dict is Empty" 아이템 추가는 https://www.kite.com/python/answers/how-to-append-a-value-to-a..
IT/파이썬 2021. 6. 9.
파이썬 - 순환 참조 문제 Circular Imports 에러
파일 여러개로 작업할 때 서로 순환참조되어 호출 되는 경우가 많다. 필요할 때 딱 쓰려고 import 했는데, 그 파일에 이미 자신의 파일이 import 되어서 쓰고 있으면 왠만해선 넘어가지 않고 머라머라 순환참조 문제일 수 도 있다고 Warning 이나 Error 가 발생한다. 요거 참 곤란한데 아주 좋은 해결책이 있었네. 아래 분의 블로그에 가시면 아주 자세하게 설명이 잘 되어 있으니 꼭 들어가 보시고, TYPE_CHECKING 상수를 활용하는 방법으로 import 순환 문제는 해결할 수 있을 거 같다. https://item4.blog/2017-12-03/Resolve-Circular-Dependency-on-Python-Typing/ Python typing으로 인한 순환 참조 대응책 Python..
IT/파이썬 2021. 5. 24.
파이썬 리스트 삭제, clear
파이썬 리스트를 제거하는 방법이 여러가지 있네. 아이템을 지울때는 그냥 del, 전체 지울 때는 clear 를 쓰면 되겠다. 자세한 내용은 아래 글을 참고합시다. 고마운분들~~ https://ponyozzang.tistory.com/587 Python 리스트 값 삭제 clear, pop, remove, del 파이썬에서 리스트 형태에 저장된 값을 삭제하는 방법을 보겠습니다. 리스트에서 값을 삭제하기 위해서는 함수를 사용하거나 범위를 지정해 삭제할 수 있습니다. 종류 내용 clear() 모든 요 ponyozzang.tistory.com BJ. Engin Akyurt 님의 사진, 출처: Pexels
IT/파이썬 2021. 5. 20.
파이썬 - 함수 전달인수에 * 가 있다면 멀까?
아래 글 보다 더 잘 설명할 순 없다. 그냥 아래 글에 들어가셔용~~ https://sjquant.tistory.com/31?category=797018 파이썬에서 arguments로 *(별표)만 쓴 경우!? fastapi 의 코드를 보던 중 함수의 arguments 로 *만을 쓴 것을 발견했다. 난생 처음 본 표현법이라서 직접 테스트 해보며 뭔지 알아냈다. ...(생략) def get_param_sub_dependant( *, param: inspect.Parameter,.. sjquant.tistory.com *를 사용하면 *이후의 arguments들을 keyword arguments로 강제할 수 있다. 예를들어 아래와 같이 정의한 경우에는 recipient와 what을 positional argum..
IT/파이썬 2021. 5. 7.
jinja2 에서 문자열 변환 함수 - 파이썬 str() 함수 같은 것
요거요거 신경 쓰이게 많이 했다. 쉽다. 정답은 아주 쉽다. jinja2 에서 문자열로 바꾸려면 str() 이렇게 쓰는 게 아니라 {{ 변수 | str }} 혹은 {{ 변수 | string }} 으로 쓰면 된다. 이것 찾느라 고생이었다. 난 ObjectId 값을 바로 문자열과 비교하니깐 같은 값인데 같다고 안나오니 환장할 노릇. 알고 보니 ObjectId를 먼저 string 으로 바꾸고 비교해야 하네.. {% if pre_orderitem == (orderitem_from["id"] | string) %} 참조한 사이트는 바로 아래~~ webisfree.com/2019-02-06/jinja2%EC%97%90%EC%84%9C-%EC%88%AB%EC%9E%90-%EB%98%90%EB%8A%94-%EB%AC%..
IT/파이썬 2021. 4. 16.
예외를 직접 발생시키기 - raise Exception
설명 필요없고, 아래 글 참고. raise Exception 함수내에서 Exception 처리하면 함수 호출 한 곳에서는 Exception이 발생이 안되니까, 별도로 Exception 처리이후에도 호출 쪽에서 그 내용을 알아야 한다면 강제로 raise Exception을 이용해서 예외를 다시 전달해 주도록 하자. dojang.io/mod/page/view.php?id=2400 파이썬 코딩 도장: 38.3 예외 발생시키기 지금까지 숫자를 0으로 나눴을 때 에러, 리스트의 범위를 벗어난 인덱스에 접근했을 때 에러 등 파이썬에서 정해진 예외만 처리했습니다. 이번에는 우리가 직접 예외를 발생시켜 보겠습니다. 예 dojang.io def three_multiple(): x = int(input('3의 배수를 입력..
IT/파이썬 2021. 4. 15.
Windows 10 SDK 설치 - dll 오류 같은 것이 나면
(아직 작성중인 글로 해결중인 블로그 글입니다. 최종 업데이트 하면 이 메시지는 사라집니다.) 그냥 Windows 10 SDK 설치를 하세요. 여러모로 좋아요 Pyinstaller dll 오류가 많이 나서 찾아보니, 이런 답변이 많네요. api-ms-win-core- dll 같은 것들이 오류나 로그에 많이 나타나네요 윈도우 10에서는 WARNING: lib not found: api-ms-win-core-*.dll같은 에러가 출력되는데 이를 해결하기 위해 아래의 페이지를 참고하자. developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/ Windows 10 SDK - Windows app development Windows App Certifica..