heroku는 python을 지원한다.


만약 heroku에 대해서 잘 모르는 사람은 다음 사이트를 참고 바란다. (https://devcenter.heroku.com/articles/getting-started-with-python#introduction)


웹서버를 쓸일이 있었는데 여러모로 덩치가 큰  django보다 flask가 괜찮을 것 같아 쓰게 되었는데 heroku에서 flask를 쓸수 있다는 것을 처음 알게 되었다.

flask 자체가 하나의 파이썬 파일로 구성되어 있기 때문에 별다르게 할 건 없다.


"heroku dino 생성 --> 프로젝트 연결 --> git을 통해 deploy"


조금 고려할 사항이 있다면 Procfile을 구성하는 것인데 제대로 서비스를 해도 되지 않기 때문에 일단 다음과 같이 작성했다.


web: python flask_server.py

그냥 개발서버 작동시키는 명령어를 쓴거라 작동은 하지만 제대로 된 서비스를 하는 사람에게 권장할 수 있는 방식은 아닌 듯 하다.


그 후에 조금 찾다보니 heroku와 연동하는 라이브러리가 있어 아래에 남겨 놓는다.



참고사이트

- https://github.com/zachwill/flask_heroku

https://github.com/kennethreitz/flask-heroku

특정 사이트를 긁어오는데 유용한  Beautifulsoup을 써서 사이트를 긁어오는 작업을 하는 중이었다.


해당 사이트의 순위 정보를 긁어와서 리스트에 [{1:키워드1}, {2:키워드2}] 이런 식으로 담아 넣는 작업을 하게 되었다.

그런데 Python 인터프리터는 Dictionary 안에 한글값이 있을 때 유니코드값을 쏟아내다보니 순위 정보가 제대로 담겨있는지 확인하는데 어려움이 있었다.


Dictionary의 값을 확인하는 방법은 ditionary[key값]으로 확인을 해야 하는데 각dictionary별로 키값이 어떻게 되는지 확인하는 방법이 뭐가 있는지 확인하다보니 dictionary.keys() 함수가 있는 것을 발견했다.


list = [{1:키워드1}, {2:키워드2}, {3:키워드3}]

for i in list:

keyList = i.keys()

print i[keyList[0]]


위와 같은 코드를 돌리면 아래와 같은 값이 출력된다.


키워드1

키워드2

키워드3


솔직히 너무 쉬운 코드긴 한데 암튼 잊지 말자는 의미에서...ㅋ

최근 구글의 firebase 실시간 데이터베이스에 흥미가 생겼기 때문에 이것 저것 해보는 중인데, 그 중에서도 Rest API를 python에서 다루는 것을 실험해보기 위해 python firebase 라이브러리를 설치하게 되었다. 


firebase 공식 사이트에서는 아래 두 python 라이브러리를 소개하고 있다.

1. https://github.com/mikexstudios/python-firebase

2. http://ozgur.github.io/python-firebase/


pip를 지원하기 때문에 아래 명령어를 통해 설치를 하고 IDE인 pycharm을 켜고 프로젝트를 만들었다. 


pip install -e git://github.com/mikexstudios/python-firebase.git#egg=python-firebase


그런데 "from firebase import firebase"가 인식이 안되는 현상이 발생했다.

왜그런가 확인을 하다보니 compile하는 python의 버전이 아까 터미널에서 확인한 버전과 다른 것이 확인이 되었다.


데이터 분석을 공부해보기 위해 Canopy 를 설치하다보니 python버전이 2.6/2,7 두 개가 설치 되어 있었다보니 pip로 설치를 하면 default로 설정되어 있는

Canopy 설치 시에 깔려 있던 2.7.11버전에 라이브러리가 설치되어 있었는데, pycharm에는 2.6.9버전이 컴파일하다보니 라이브러리가 없는 것으로 인식된 것이다.


그래서 버전이 다른 python에  pip로 설치하는 방법을 찾아봤는데 제대로 된 답을 얻을 수가 없었다.

결국 github에 있는 소스를 다운 받은 다음 python setup.py install를 통해 직접 설치하여 해결 할 수가 있었다.


혹시라도 삽질하는 사람 있으면 그냥 직접 설치하시는 방법을 권장한다.

문자열 

문자열(string)이란 결국 텍스트를 말한다.
python에서 문자열은 ' 텍스트 ' 또는 " 텍스트 " 로 만든다. 


문자열에 한줄 이상을 쓰려면 '''  텍스트  ''' 를 쓰면 된다.(쌍따옴표 셋)


문자열 중간에 따옴표가 들어가는 경우 에러가 발생하는데 이 경우에는 \(역슬러쉬)를 사용하면 된다.
쌍따옴표도 마찬가지로 적용된다.


'I am ____' 과 같이 문자열에 변수를 넣을 경우에는 %s 를 통해서 넣으면 된다.
%s를 쓰는 경우에는 우선 공란(____)으로 되어 있는 곳에 %s를 넣는다.(ex. 'I am %s')
그리고 출력 할 때 print('I am %s' % 'boy')와 같이 쓴다. 다시 말해 print(['변수가 들어간 문자열'] [%] [문자열에 넣을 변수])와 같은 구조를 가진다.


문자열을 곱하기 할 경우에는 문자열이 곱한만큼 반복되고 문자열을 더하기 한 경우에는 문자열과 문자열이 합쳐진다.



리스트

리스트를 만들 때는 [ ] 기호를 사용한다. 
다음은 내가 좋아하는 게임 리스트를 만든 것이다.


문자열과 다를게 없지만 리스트를 쓰는 이유는 리스트 안에 들어가 있는 항목을 불러오거나 수정하거나, 추가하거나 할 수 있다.
특정 항목을 불러온다면 print(my_favorite_games[원하는 리스트 번호])로 부를 수 있다.
만약 여러 항목을 불러오려면 번호 대신 : 를 쓰는데 1번 항목부터 4번 항목까지 부르려면 0:3 와 같은 방식으로 부를 수 있다.



리스트에 항목을 추가하기 위해서는 append라는 함수를 사용한다.
현재 만들어진 리스트에 Diablo라는 항목을 추가하기 위해서는 my_favorite_games.append('Diablo')라고 하면 된다.
리스트를 출력해보면 마지막에 Diablo가 추가된 것을 확인할 수 있다.


리스트에 항목을 삭제하기 위해서는 del 명령어를 사용하면 된다.
방금 추가한 Diablo를 삭제하기 위해서는 del my_favorite_games[4]라고 하면 된다.



튜플

튜플은 [] 기호가 아닌 () 괄호를 사용한 리스트이다.
튜플은 리스트를 한번 정의하면 변경할 수 없는 특징이 있다.




맵은 키(key)와 값(value)를 정의하는 방법이다. 
데이터 테이블을 쉽게 사용하기 위하여 값들에 key를 부여하여 데이터 핸들링을 쉽게 하는 방법이다.
예를 들어 내가 좋아하는 게임 리스트를 맵으로 만들면 나중에 각 값을 불러낼 때 리스트에서 직접 텍스트를 불러내는 것이 아니라 key값을 불러내면 value가 출력된다. 

key value
1 sam11
2 AION
3 LOL
4 B&S
5 Diablo


맵을 만드는 방법은 {} 기호를 사용한다.
내가 좋아하는 게임리스트를 맵으로 구현한다면 my_favorite_games = { key1 : value1, key2 : value2 } 과 같은 방법으로 한다.
맵이 만들어지면 value를 호출하기 위해 key 값을 불러내면 된다.


리스트와 마찬가지로 맵에서도 값을 삭제하고 변경 할 수 있는데
리스트와 다른점은 key를 활용한다는 점이다.

삭제를 할 때는 del 명령어를 사용하고 
변경을 할 때는 key를 이용하여 다시 한번 정의하면 된다.








계산

python 연산자는 다음과 같다.

기호 연산자
+ 덧셈
- 뺄셈
* 곱셉
/ 나눗셈


python의 계산은 상당히 간단하다. 계산기를 쓰는 것 같다고 보면 된다.
그냥 숫자를 입력하고 연산자를 쓰고 엔터를 누르면 결과값이 나온다.
곱하기와 나누기가 있을 경우 덧셈과 뺄셈보다 우선하여 계산을 하는 것도 같다.
괄호를 할 경우 괄호가 가장 우선이 된다.


변수

변수의 정의는 등호를 사용한다. 
예를 들어 'jason이란 변수는 500이다' 라고 정의 한다면 다음과 같다.
제대로 정의가 되었는지 확인하기 위하여 print 를 사용하면 됨.


등호를 통해서 변수와 다른 변수가 같다는 것을 정의 할 수도 있다.
tiger란 변수를 jason과 같다고 하면 tiger를 print 했을 때 jason과 동일한 값이 출력된다.



python을 배우기 위해 우선 python을 깔아야 한다.

다운로드를 위해서는 다음 주소 https://www.python.org/에 가서 다운로드에 가면 받을 수 있다.  

설치는 간단하다.

그냥 다음다음다음....하면 설치된다.

모든 설치를 마치고 IDLE를 실행하면 다음과 같은 화면이 나온다.

 

그리고 이제 여기에 다음과 같이 작성하면 모든 개발의 시작인 Hello World가 나타난다.

print('Hello World')

 

이제부터 시작이다!!!

 

+ Recent posts