본문 바로가기

programming/python

Mac os, python3, miniconda 설치 맥북에어를 새로 사서 파이썬3를 새로 설치가 필요했다. (맥에는 기본적으로 파이썬2가 설치되어 있다.) 파이썬3를 설치하고 가상환경을 사용하는 방법은 여러가지가 있다. https://github.com/ahastudio/til/blob/master/python/20181214-setup-python-project.md ahastudio/til Today I Learned. Contribute to ahastudio/til development by creating an account on GitHub. github.com (아샬님의 파이썬 프로젝트 시작하기를 참고하면 된다!) 여기서는 mac os 환경에서 brew 와 miniconda를 이용하기로 한다. https://brew.sh/index_ko /u.. 더보기
파이썬 유닛 테스트 간단하게 파이썬 유닛 테스트를 해보았다. [간단한 파이썬 유닛 테스트] 먼저 pytest 를 설치 한다. $ pip install pytest pytest 는 앞부분이 'test_'로 시작하는 파일들과 함수만 테스트 한다. 예1) 5를 더해주는 함수 1 2 3 4 5 6 def add_five(num): return num + 5 def test_add_five(): assert add_five(3) == 8 cs 성공~ 실패 @.@ 1 2 3 4 5 6 def add_five(num): return num + 5 def test_add_five(): assert add_five(3) == 10 cs 예2) 팩토리얼 함수 5*4*3*2*1 = 120 1 2 3 4 5 6 7 8 9 def factoria.. 더보기
flask key error (깔끔한 파이썬 탄탄한 백엔드) 깔끔한 파이썬 탄탄한 백엔드 https://github.com/rampart81/python-backend-book/blob/master/chapter8/config.py 인증 부분에서 key error 가 났다. 이유는 간단했다. config.py 파일에 JWT_SECRET_KEY = 'SOME_SUPER_SECRET_KEY' 요 내용이 없어서 그렇다 다시 요청을 보내면 서버에서 토큰값을 준다. access_token 을 복사해서 "Authorization:eyJ0e..." 형식으로 요청하면 된다. 더보기
우분투 미니콘다 설치 우분투 미니콘다 플라스크 우분투-아나콘다 설치 방법 > https://light-tree.tistory.com/58 미니콘다 다운 $ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 미니콘다 설치(디폴트 생성시) $ bash Miniconda3-latest-Linux-x86_64.sh conda 가상환경 실행 $ source ~/.bashrc 가상환경 만들기 $ conda create -n flask-api python=3.7 가상환경 실행 $ source activate flask-api git clone $ git clone [git address] requirements.txt 목록 다운 $ pip install .. 더보기
파이썬 딕셔너리 value + () 멘토께서 피드백을 주신 내용으로 간단한 예제를 만들어 보았다. 코드를 보고, 앗 이런 게 가능하다니! 놀랐다 ^^ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 def go_to_daum(): print('go to daum') def go_to_naver(): print('go to naver') def go_to_google(): print('go to google') MOVE_SITE = { 'daum': go_to_daum, 'naver': go_to_naver, 'google': go_to_google } site = 'daum' MOVE_SITE[site]() # go to daum cs *참고로 함수 선언이 MOVE_SITE 딕셔너리 보.. 더보기
파이썬 getattr() 함수 from enum import Enum class Fruit(Enum): APPLE = 'red apple' BANANA = 2 LEMON = 'lemon', 3 key = 'APPLE' print(getattr(Fruit, key).value) # 'red apple' def keyword(fruit): get_value = getattr(Fruit, fruit).value print(get_value) keyword('BANANA') # 2 keyword('LEMON') # ('lemon', 3) https://stackoverflow.com/questions/12801912/python-3-x-java-valueof-equivalent-in-python-3-x 더보기
파이썬 들여쓰기와 return 탄탄한 백엔드 책을 보면서 sqlalchemy 부분에서 1시간 정도 애를 먹었다. 이유는 아주 단순했다. 들여쓰기와 return 문 때문이었다. 파이썬은 들여쓰기를 잘해야 한다. if num == 5 : print('num==5') 4칸은 띄우고 print 문을 사용해야 한다. 책을 보고 단순히 따라 친 후 줄이 너무 길어져서 들여쓰기를 제대로 했는 지 파악을 못하는 경우가 있었다. 에러 표시가 되어도 이상하게 제대로 보지 못했다. 또 return 문 다음은 실행되지 않는데, 그 부분을 생각하지 못했다. def test(): str = 'test' return str print(str) 'test' 는 당연히 출력되지 않는다. 위에 예시보다 코드가 길긴 했지만, 당시에는 왜 몰랐을까? ^^; 어쨌든 파이.. 더보기
파이썬 딕셔너리 get(), setdefault() 파이썬 딕셔너리 get(), setdefault() '깔끔한 파이썬 탄탄한 백엔드'라는 책을 보다가 setdefault() 가 어떤 기능인지 궁금해서 찾아보았다. 책에서는 간단한 트위터 기능을 구현하는 예제에 나와 있는데, 특정 id(user 고유의 값)를 팔로우하거나 언팔로우할 때 해당 id가 중복되면 안 되기 때문에 setdefault() 를 사용한다고 했다. 리스트를 사용하면, 값이 중복되더라도 추가가되기 때문에 중복을 허용하지 않는 set을 사용한다. 그러면 어렵게 값을 재확인 할 필요가 없어진다 :) 단, 주의해야 하는 점이 있는데, set을사용한 후 return 을 할 때 json 형태로 하게 되면, 에러가 난다. 이러한 경우 리스트 형태로 변환해서 바꾸어 주어야 한다. 책에서는 문제를 해결하.. 더보기