본문 바로가기

개발

(68)
Fastapi heroku 배포하기 2021.6.10일 기준 heroku에서 공식 지원되는 파이썬 버전은 다음과 같다. https://devcenter.heroku.com/articles/python-support#specifying-a-python-version Heroku Python Support | Heroku Dev Center Last updated May 28, 2021 Heroku supports all popular web frameworks for Python (Django, Flask, Pyramid, and so on). For a deployment tutorial that uses a sample Django app, see Getting Started on Heroku with Python. Recognizing..
VS Code 터미널 안 될때 해결법 (터미널을 Bash로 해둔 자의 글입니다) 뭘 잘못한 건지 어느새부터 터미널이 이렇게 되고 먹통이라 VS Code + 따로 터미널을 켜서 작업했는데 우측 + 옆의 아래 화살표를 누르고 Git Bash를 누르니 해결이 되었다! (작업할 폴더도 선택해줘야 한다.) 폴더를 선택하면 이렇게 Bash 터미널이 다시 정상작동되는 걸 확인할 수 있다! ++ 하지만 창을 껐다 키면 이 과정을 다시 해주어야 합니다. 그래도 된다는 걸로 감지덕지...
파이썬으로 AWS Dynamodb 쉽게 연결하고 데이터 넣기 다음 프로젝트를 위해 웹사이트의 상품을 beautifulsoup으로 받아와서 바로 클라우드 db에 넣으려 했다. 현업에서는 보통 AWS를 많이 사용하는 것 같길래, AWS의 NoSQL db인 DynamoDB를 사용해보고자 했다. 몇번의 오류 끝에 쉽게 연결할 수 있었는데, 딱 이거다 하고 나같은 파이썬 사용자를 위해 쉽게 정리된 글이 보이지 않아 직접 작성한다. 1. 먼저 AWS 계정이 필요하다. AWS 계정을 만들고, 콘솔에 로그인한다. 2. 계정을 만들었으면 Dynamodb로 가서 테이블을 만든다. 기본 키가 필요한데, 데이터를 보고 키값으로 설정할 만한 값을 넣어주면 된다. 다음으로 IAM 으로 가서 사용자와 그룹을 만들어준다. 만들 때 ID, 비밀번호, 시크릿 키를 보여주는데 잘 메모해놓자. 나중..
파이썬 재귀함수로 문자열 거꾸로 출력하기 string ->gnirts 같이 거꾸로 출력하고 싶으면 슬라이싱+재귀를 통해 출력할 수 있다. 먼저 문자열의 길이가 1일 땐, 그대로 문자열을 리턴하는 기본 조건을 만든다. 그 다음에 맨 마지막 문자열을 출력할 수 있도록, 문자열의 두 번째 글자부터 재귀 함수에 넣는다. -> 그럼 맨 마지막 글자, 그 전 글자 ... 처음 글자 이런 식으로 출력된다. def recursion_advanced(str): if str =='': # len(str) == 1 도 가능하다 return str else: return recursion_advanced(str[1:]) + str[0] recursion_advanced("mycatiscute") >>>etucsitacym
heroku 로딩 속도 느린 현상 해결하기(non sleep) 헤로쿠로 무료 배포를 하면, 30분 이상 트래픽이 없을 시 헤로쿠가 앱을 sleep 시킨다. 그러면 차후 접속할 때, 다시 앱을 깨우느랴 로딩 속도가 20초 이상 걸린다. 어떻게 해결할 수 있을까 찾아봤는데, http://kaffeine.herokuapp.com/ Kaffeine Remove your app from Kaffeine. http:// .herokuapp.com Decaf App not found Your app has been removed. kaffeine.herokuapp.com 이 사이트에 헤로쿠 도메인을 넣으면 30분마다 트래픽을 발생시켜, 앱이 sleep 되지 않도록 한다. 여기다 이렇게 도메인을 넣으면 된다. 기본적으로 하루에 6시간은 sleep을 해야 해서, 그 시간대를 지정해..
MongoDB CRUD 쿼리 몽고디비는 데이터를 binary json 형태로 받아 더 많은 데이터를 포함한다. { field1: value1, field2: value2, field3: value3, ... fieldN: valueN } 이런 field - value의 pair이다. 데이터 구조를 보면, DB 안에 하위 collection(데이터의 집합)이 있으며, 위와 같은 개별 데이터(json 파일 형식)은 document라 부른다. db > collection(데이터의 집합) > document(개별 데이터) 이다. Create # single collection에 데이터(document) 삽입 db.collection.insertOne() # 한번에 여러 데이터 삽입 db.collection.insertMany() Read ..
정규식을 사용하여 여러 패키지 버전 한 번에 지우기 !pip install google-auth==1.27.1 !pip install google-auth-oauthlib==0.4.3 !pip install grpcio==1.36.1 !pip install markdown==3.3.4 !pip install oauthlib==3.1.0 !pip install protobuf==3.15.5 !pip install pyasn1==0.4.8 !pip install pyasn1-modules==0.2.8 !pip install requests-oauthlib==1.3.0 !pip install rsa==4.7.2 !pip install tensorboard==2.4.1 !pip install tensorboard-plugin-wit==1.8.0 !pip inst..
try except에서 None 사용 조심! try, except 구문을 쓸 때, 조건에 따라 except 상황의 경우 None을 리턴해주는 식으로 코드를 짤 때가 있는데, if not result: 와 같이 조건식에서 not을 활용하는 경우 빈 문자열, 빈 리스트, 0, None이 다 False기 때문에 예상치 못한 결과가 나올 수 있어 주의해야 한다. # 1. 문제 안 됨 def none_test(num1, num2): try: return num1 / num2 except ZeroDivisionError: return None # None 반환 result = none_test(0,2) print(result) # 정상결과 if result is None: # 답은 0.0이고 None이 않으므로 print('result is None') # ..