python

pipreqs – requirements 뽑기

March 7, 2017 Dev

virtualenv 를 사용하면 사실 좋긴 한데, 그게 아닌 경우에 대해서 개발 서버에서 작업했을때 requirements.txt 를 뽑기가 어렵다. requirements.txt 가 필요한 이유는 서버에 세팅시 pip install -r 옵션을 통해서...

(flask) jsonschema 를 이용해서 request.json 검사하기

January 3, 2017 Code

API에서 파라미터의 유효성 검사는 필수적인 요소이긴 하지만, 개발자로서 여간 귀찮은 일이 아닐 수 없다. API의 양이 많을수록 할 일은 많아진다. 세세하게 체크할 부분은 해야하지만 기본적으로 파라미터 유무, 파라미터의...

기술 링크 정리 #3 – 2016/12/28

December 28, 2016 Dev

파이썬 관련 파이썬 코리아 격월 세미나 파이썬 코리아의 세미나는 자주 열리지 않는 편인데, 12/17일에 격월 세미나가 열렸었다. 다음번 격월 세미나를 기다려본다. 웹 개발, 왜 어려운가? 오픈소스 네이밍 특징들...

(flask) JSON 데이터 받기 및 예외처리

December 22, 2016 Code

flask 에서 json 데이터를 받아서 처리할 때 reqeust.get_json() 혹은 request.json 을 이용할 수 있는데, mime type을 application/json 타입으로 보내는데, {} 없이 빈 JSON 문자열 조차도 안 보내는 경우가...

기술 링크 정리 #2 – 2016/12/20

December 20, 2016 Dev

파이썬 관련 Python 3.6: A quick look 지난주 Python3.6.0 RC1 이 나왔다고 했는데, Pycharn 2016.3 버전에서 Python3.6을 어떻게 지원하고 있는지에 대해서 설명하고 있다. 특히 f-string 에 대해서 Pycharm에서...

기술 링크 정리 #1 – 2016/12/09

December 9, 2016 Dev

파이썬 관련 Python 3.6.0 RC1 Python3.6.0 Release Candidate1 에 대한 내용을 담고 있다. 에 가면 좀더 자세한 내용을 볼 수 있다. CPython 구현 개선에 대한 내용이 있는데, dict...

파이썬 @memoize 고립된 환경에서 사용하기

September 26, 2016 Code

파이썬에서 데코레이터를 정말 자주 사용하고 있지만 다양한 용례는 접해보지 못했었다. Ned Batchelder의 글 Isolated @memoize은 @memoize 데코레이터에 대한 이야기인데 같이 곁들여진 설명과 각 링크가 유익해서 번역했다. 파이썬 데코레이터...

파이썬 리스트 vs. 튜플

September 21, 2016 Code

파이썬을 처음 공부할 때 리스트와 튜플에 대해 비슷한 의문을 가진 적이 있었다. 이 둘을 비교하고 설명하는 Ned Batchelder의 Lists vs. Tuples 글을 번역했다. 특별한 내용은 아니지만 기술적인 차이와...

setup.py와 requirements.txt의 차이점과 사용 방법

September 13, 2016 Code

파이썬을 사용하다보면 setup.py와 requirements.txt를 필연적으로 마주하게 된다. 처음 봤을 때는 이 둘의 용도가 비슷하게 느껴져서 마치 둘 중 하나를 골라야 하는지, 어떤 용도로 무엇을 써야 하는지 고민하게 된다....

PyCon AU 2016 참가 후기

September 10, 2016 Dev

Python을 실무에서 많이 사용하고 있지 않긴 하지만 사용할 때마다 재미있고 깊게 배우고 싶다는 생각이 늘 드는 언어 중 하나다. 관심을 갖기 시작했을 때부터 PyConAU에 다녀오고 싶었는데 이전엔 브리즈번에서...

[Django] settings 파일 & 비밀 변수 분리

September 5, 2016 Code

Two scoops of django 책의 5장, ‘settings와 requirements 파일’을 보고 개인 프로젝트에 두 가지를 리팩토링해야겠다는 생각이 들었다. 비밀 값(e.g. OAuth 토큰) 코드에서 분리 환경별로 settings 파일 분리 제일...

SQLAlchemy with StoreProcedure

August 25, 2016 Dev

제목자체가 역설적이지만, 이렇게 써야 할때가 있다. 예를들면, 레거시를 다시 재개발하는 수준에서 특정 프로시저는 단순히 db를 조회하는 것 이상의 프로그래밍적인 기능을 가지고 있을때가 있다. 또한, 다른 이유로 ORM인 SQLAlchemy와...

PyconAPAC 2016 후기 슬라이드

August 24, 2016 Life

Pycon APAC 2016 후기 from SeongHyun Ahn 파이콘 관련 글을 쓰고 있는 중인데, 위의 슬라이드는 회사에서 팀내에 공유한 내용이다. 별 다른 후기가 있는것은 아니고 이런 행사도 있다는 것,...

flask-runner

August 9, 2016 Dev

Flask 에서 개발을 할 때, Debug 옵션을 키고 app 에 기본 내장된 개발서버를 사용한다. 그런데 파일을 수정하면 재시작하는 기능은 좋은데, host 나 port 를 지정해 놓고 사용하다가 변경할때...

Python flake8 사용하기

August 3, 2016 Code

pep8, flake8 등의 툴이 파이썬 코드의 정적검사를 하는 툴이다. $ python -m pip install flake8 flake8 --count --exclude ./tests,./docs --ignore E501,F401 # --count : 위반 개수 표시 #...

[Django] Admin Customizing하기

July 27, 2016 Code

Admin Form 커스터마이즈하기 class QuestionAdmin(admin.ModelAdmin): fields = ['pub_date', 'question_text'] # 필드 순서 조정 admin.site.register(Question, QuestionAdmin) # 두 번째 인자로 위에 만든 model admin class를 넘긴다. class QuestionAdmin(admin.ModelAdmin): fieldsets...

[Django]서버사이드 이미지 크롭/리사이징 하기

July 20, 2016 Code

프론트엔드에서 Javascript로 온갖 삽질을 하다가, 그냥 서버사이드에서 처리하기로 했다. 훨씬 깔끔하게 끝났다(물론 이것도 삽질했지만 ^^). HTML Canvas로 한 프론트 리사이징은 이미지 퀄리티도 안좋게 떨어진다. 웬만하면 파일 처리는 서버사이드에서...

docxtpl 를 이용한 문서 자동화

July 18, 2016 Code

엑셀의 경우, 백오피스나 CMS 등에서 import/export 에 사용하기 때문에 기능구현 할 때 XlsWriter 를 이용해서 구현했던 적이 있었다. 그에 비해서 워드 문서를 생성해 내는 작업은 별로 없었다. 발단은...

파이썬으로 내가 쓸 셸 만들기

July 8, 2016 Code

매주 python관련 뉴스들이 오는데 이번에는 흥미로운 것이 있어서 이렇게 남긴다. Create Your Own Shell in Python: Part 1 Create Your Own Shell in Python: Part 2 supasate/yosh yosh 프로젝트로 간단히 Python을...

[Django] Migration Conflict 해결하기

July 4, 2016 Code

상황 근 한 달 이상 Review브랜치에서 리뷰 개발을 하고 있다. 너무 옛날 코드라 Master의 최신 코드와 Rebase했다. 바뀐 쿼리들을 적용하려고 ./manage.py migrate를 치니 ./manage.py migrate CommandError: Conflicting migrations...

[Django Models 뜯어보기 #2] Making Queries

June 23, 2016 Code

앞으로 예시들에 사용할 모델. 글 하나에 블로그 여러 개 중 하나가 연결되어있고, author는 m2m. class Blog(models.Model): # 블로그 name = models.CharField(max_length=100) tagline = models.TextField() def __str__(self): return self.name...

[Django] Models 뜯어보기

June 17, 2016 Code

필드(Fields) from django.db import models class Musician(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) instrument = models.CharField(max_length=100) class Album(models.Model): artist = models.ForeignKey(Musician, on_delete=models.CASCADE) name = models.CharField(max_length=100) release_date = models.DateField()...

[python] MySQL-Python 설치오류, mysql_config not found

June 4, 2016 Blog

위의 스샷은 mac상에서 pycharm 이나 터미널에서 mysql 연동을 위한 파이썬 MySQL-Python을 설치 시 발생하는 오류로, mac 에 mysql을 설치해준 후 다시 설치하면 된다. brew install mysql export PATH=$PATH:/usr/local/mysql/bin...

tailon으로 로그파일 웹에서 보기

March 29, 2016 Code

서버에 있는 로그를 웹상의 타인에게 보여줘야 할 경우가 있는데(가급적 이런 경우는 좋지 않은 상황인 경우이다.) 어떻게 할까 찾아보다가 python으로 된 tailon이라는 쉽게 커맨드 명령어로 띄울 수 있는 툴이...

[Django] redirect시에 데이터 넘기고 싶어요(feat. HTTP,

March 15, 2016 Code

상황 페이스북 로그인을 하고, 페이스북 연결 해제버튼을 눌렀을 때 비밀번호가 설정이 되어있지 않다면 비밀번호 설정 페이지로 리다이렉트 시키고 싶다. 이로 인해서 들어온 비밀번호 설정 페이지에서는 그냥 들어왔을 때와는...

Atom 에서 Python 3 개발하기

March 15, 2016 Dev

Atom 에디터로 파이썬 개발하는 것을 추천하지 않는 글입니다. Atom 은 Sublime Text 3 와는 다르게 기본적으로 코드를 실행할 수 없다. 코드를 실행하기 위해서는 script 라는 Atom 패키지를 설치해야...