Coding/Python113 Python Anti Pattern - Asking for permission instead of forgiveness Asking for permission instead of forgiveness파이썬 커뮤니티에서는 EAFP(easier to ask for forgiveness than permission) 코딩 스타일을 사용한다.이 코딩 스타일은 필요한 변수, 파일등이 존재한다고 가정하는 것이다.이외의 문제가 발생한다면 예외를 통해 처리한다.위와 같은 형태로 작업한다면 다수의 try~except문이 포함된 깔끔하고 일관적인 코딩 스타일을 유지할 수 있다. Anti-patternimport os # violates EAFP coding style if os.path.exists("file.txt"): os.unlink("file.txt")위 코드를 먼저 살펴본다.if문에서 파일에 접근하기전에 먼저 파일이 존재하는지 검.. 2019. 1. 28. Python Anti Pattern - Returning more than one variable type from function call Returning more than one variable type from function call만약 함수가 list, tuple, dictionary등의 타입을 리턴한다면 함수를 호출하는 쪽에서는 항상 리턴값의 타입을 검사해야한다.이것은 코드의 복잡성을 증가시키는 일이다.따라서 호출하는 쪽에서 타입을 검사하는 방법보다는 함수에서 값을 리턴할 때 raise를 통해 오류를 발생시켜주는 것이 낫다. Anti-patterndef get_secret_code(password): if password != "bicycle": return None else: return "42" secret_code = get_secret_code("unicycle") if secret_code is None: print("W.. 2019. 1. 28. Python boto3로 AWS S3스토리지 연동하는 방법 파이썬으로 AWS의 S3스토리지에 연결하려면 boto3라는 라이브러리를 사용하면 된다.처음에는 boto2버전을 사용하다가 공식홈페이지에 들어가보니 3버전까지 나와서 3로 갈아탔다.나는 가상환경을 구축하고 그 위에서 작업했지만 이번 포스팅에서는 가상환경을 구축하지 않고 설명한다.또한 맥북(OS X)를 사용하므로 대부분을 터미널에서 작업했다.먼저 아래의 명령어로 boto3를 설치한다. pip3 install boto3 다음으로 aws 커맨드라인 명령어툴을 설치한다. pip3 install awscli 이제 작업할 폴더로 들어가서 .aws라는 숨김 폴더를 하나 생성한다.해당 폴더로 진입하여 credentials라는 파일을 만들고 아래의 내용을 채워넣는다. [default]aws_access_key_id = 액.. 2018. 12. 5. Flask Mongoengine Mongo Atlas와 연동하는 방법 요즘 RDB를 벗어나 NoSQL을 많이 다루고 있다.찾아보니 Mongo Atlas라는 것이 존재했는데 AWS처럼 프리티어도 존재하나보다.먼저 아래의 사이트로 들어간다.(참고로 나는 현재 파이썬 플라스크를 통해 API서버를 구축하고 있다) https://www.mongodb.com/cloud/atlas 이메일을 적는 칸이 있다.입력하고 Get started free버튼을 누른다. 그러면 위와 같은 창이 뜬다.Build my first cluster버튼을 누른다. 이제 간단한 설정을 해줘야 한다.먼저 클라우드를 선택해야하는데 나는 익숙한 AWS를 선택했다. 다음으로 아래쪽에서 지역 선택은 그냥 프리티어 중 아무곳이나 선택한다. 다른건 크게 건드릴필요가 없다.아래쪽에 있는 Cluster Name에 원하는 이름.. 2018. 12. 4. Python Celery Redis 연동하는 방법 먼저 Redis부터 설치한다.터미널에 아래의 명령어를 차례대로 입력한다. $ wget http://download.redis.io/releases/redis-5.0.0.tar.gz $ tar xzf redis-5.0.0.tar.gz $ cd redis-5.0.0 $ make(현재 5.0 버전이므로 추후 바뀔 수 있음. 그때는 https://redis.io/download 참고) 위처럼 나온다면 정상적으로 설치가 완료된 것이다.혹시 모르니 실제로 실행시켜본다.먼저 터미널에서 redis-server를 입력한다. 위와 같이 나온다면 정상적으로 서버가 실행된 모습이다.이제 celery를 설치해야 한다.파이썬으로 작업환경을 구축할 때는 가상환경을 통해 독립적인 공간을 만드는게 좋다.(pipenv로 가상환경 구축하.. 2018. 11. 7. Flask-restplus 파일/이미지 업로드하는 방법 Flask로 Restful API를 만들기위해 라이브러리를 찾아보면flask-restful, flask-restplus등 다양한 라이브러리가 존재한다.각 라이브러리마다 사용법 또한 다르며 장점, 단점도 다르기 때문에 document를 잘 살펴보고 결정해야한다.나는 현재 restplus를 사용하여 구축하고 있다.따라서 오늘 포스팅에서는 restplus를 사용하여 이미지를 업로드하는 방법을 살펴본다.먼저 파일 형식을 인자로 받기 위해서는 FileStorage 타입을 사용해야 한다.아래의 코드를 먼저 상단에 추가한다. from werkzeug.datastructures import FileStoragefrom werkzeug.utils import secure_filenamesecure_filename은 보안.. 2018. 8. 19. 이전 1 ··· 5 6 7 8 9 10 11 ··· 19 다음