개발/python
-
플라스크(Flask) ; 로컬 서버 실행개발/python 2016. 8. 28. 01:26
플라스크에 대해 설명 드리면서 예제로 항상 app.run() 함수를 이용했었습니다. 그렇지만, 아마 코드를 실행시켰던 PC가 아닌 다른 호스트에서 접속하려면 접속이 되지 않았을 것입니다. 따로 IP를 설정해주지 않아도 로컬 IP 주소인 127.0.0.1로 자동으로 접근되기도 하기때문에 별 신경을 쓰지 않았습니다. 그렇지만 만약 다른 호스트에서 접근하고자 한다면 app.run() 함수에 host 인자를 넘겨주면 됩니다. 또한 네트워크를 '0.0.0.0'으로 지정하면 어떤 호스트에서도 연결 가능합니다. app.run(host='0.0.0.0') 이외에도 run() 함수는 debug라는 인자를 가집니다. 기본값은 False 이며, 이름과 마찬가지로 디버그 정보를 보여주느냐 마느냐 여부를 결정하는 인자입니다. ..
-
플라스크(Flask) ; 에러와 로깅개발/python 2016. 8. 27. 02:04
에러(Error) 일반적으로 웹 브라우저에서 요청한 URL 에 대해 응답이 없으면 발생하는 404 에러가 발생합니다. 이처럼 http 오류 코드에 대해 플라스크에서는 브라우저의 에러코드 화면이 아니라, 사용자가 별도로 지정한 화면으로 처리할 수 있습니다. 우선 간단한 예제 코드부터 보도록 하겠습니다. @app.errorhandler(404) def page_not_found(error) return render_template('page_not_found.html'), 404 예제코드에서 일단 눈에 띄는 것은 errorhandler 라고 하는 데코레이터와 리턴값이 2개라는 점입니다. 파이썬에 대한 문법을 설명을 제대로 한 적이 없지만, 파이썬에서는 함수에서 여러개의 리턴값을 지정하는 것이 가능합니다. 2..
-
플라스크(Flask) ; Jinja2 템플릿 엔진 기본문법개발/python 2016. 8. 26. 00:50
플라스크에서는 템플릿을 이용하여 html을 구성한다는 설명을 지난 포스팅에서 했었습니다. 그렇다면 이 템플릿을 해석하는 템플릿 엔진인 Jinja2의 기본적인 문법에 대해서도 조금 알아야겠다 싶어 포스팅합니다. 우선 죄송하게도 모든 문법을 다 설명드리지는 못한다는 것을 말씀드립니다. 만일 더 상세한 지식이 필요하신다면 아래쪽의 링크를 걸어둔 Jinja Docs를 참조하시면 좋을 것 같습니다. Jinja2 Docs 첫 번째 링크Jinja2 Docs 두 번째 링크 우선 예제 코드를 적어보겠습니다. 단순히 이런식으로 사용된다는 것을 보여주기 위한 예제이므로, 깊게 이해하시기 보다는 이러한 형태를 가지고 있구나라고 생각해 주세요. {% for item in navigation %} {{ item['caption'..
-
플라스크(Flask) ; 정적 파일과 템플릿(HTML/CSS/JavaScript)개발/python 2016. 8. 25. 02:11
이번 포스팅에서는 정적 파일과 템플릿에 대해서 적었습니다. 아마 다들 마찬가지시겠지만, 플라스크를 이용해 서버를 띄우고 난 뒤에는 당연하게 드는 의문이 있습니다. 지금까지야 단순하게 문자열 형태를 리턴하여 화면에 출력했는데, HTML 파일 같은 경우는 어떻게 가져와서 출력할까? 라는 생각입니다. 물론 텍스트로 파싱(Parsing) 해도 되기야 하지만, 아무리 생각해도 적절한 방법은 아닌것 같습니다. 결론부터 말씀드리자면, 당연하게도 플라스크에서도 HTML이나 CSS, JavaScript와 같은 파일들을 읽어 사용할 수 있습니다. 이에 대해 간략히 소개해보겠습니다. 우선 지금까지 우리는 항상 하나의 파일에서 작업을 해 왔습니다. 그러나 이제는 파일들을 분리하고자 합니다. 플라스크에서는 이러한 파일들의 위치..
-
플라스크(Flask) ; 동적인 URI개발/python 2016. 8. 24. 01:56
지난 번 포스팅 때 플라스크를 이용해 간단하게 웹서버를 띄워보았습니다. 이번에는 URI를 동적으로 사용하는 방법에 대해 예시를 들어 간단하게 보도록 하겠습니다. 저희가 이전에 사용했던 코드는 아래와 같습니다. from flask import Flask app = Flask(__name__) @app.route('/') def hello_flask(): return 'Hello Flask!' if __name__ == '__main__': app.run() 여기서 눈치빠른 분들은 알아차리셨겠지만, @app.route라는 부분 뒤에 '/'라고 URI와도 같은 것을 셋팅해주는 것을 알 수 있습니다. 플라스크는 기존에 복잡하게 연결해야했던 URI를 위처럼 @app.route라는 한 줄로 해결해 줍니다. 위의 경..
-
플라스크(Flask) 설치개발/python 2016. 8. 23. 00:42
플라스크를 사용하기 위해서는 파이썬에 대한 설치가 우선 선행되어야 함을 말씀드립니다. 또한 제가 설치했던 버전을 기준으로 보면(이전 포스팅 참조), 이전에 매우 설치가 번거로웠던 pip 명령어가 자동으로 설치되도록 되어있습니다. pip는 PyPI(Python Package Index)에 등록된 파이썬 패키지를 설치하는 프로그램인데, 주로 커맨드 창이나 쉘에서 사용되므로, 명령어를 설치한다는 개념으로 보셔도 됩니다. 결론적으로 제가 말씀드리고 싶었던 것은, 과거와는 달리 플라스크 설치를 위해 pip를 설치해야 하고, 이 pip를 설치하기 위해, 또다른 프로그램을 설치하고 하는 과정을 거치지 않아도, 자동으로 설치되니 어렵지 않게 진행하실 수 있을 것이라는 점입니다. pip가 제대로 설치되었는지 확인하기 위..
-
파이썬(Python) 설치개발/python 2016. 8. 22. 23:43
파이썬(Python) 언어를 사용하기 위해서는, 우선 PC에 파이썬을 설치해야 합니다. 윈도우10 환경이므로 UI적인 부분은 차이가 있을 수도 있겠지만, 그대로 따라하시는데 큰 무리는 없을 거라고 생각합니다. 우선 파이썬 공식홈페이지에서 파이썬을 다운로드 받기 위해, 구글에서 "python"을 검색합니다. 검색을 하게 되면 가장 위에 공식 홈페이지가 보입니다. 귀찮으신 분들은 아래쪽 링크를 눌러주세요. Python 공식 홈페이지 공식 홈페이지에 들어가보시면 쉽게 알아보실 수 있게 되어있습니다. Download 탭에 마우스를 올리면 Python 3 이후 버전과, Python 2.7 버전으로 나뉘어 받을 수 있게 되어있습니다. 둘 사이에 문법 차이가 있어서 그런 것인데, 개인적으로는 추후 3 이후 버전으로 ..
-
파이썬(Python) 마이크로 프레임워크 : 플라스크(Flask)개발/python 2016. 8. 22. 18:46
플라스크는 파이썬 기반의 마이크로 프레임워크입니다. 사실 '마이크로 프레임워크'라는 개념이 생소하실 수도 있는데, 이름 그대로 소형화된 프레임워크라고 생각하시면 좋을 것 같아요. 요즘 프레임워크들은 엄청 무겁잖아요? 한번 올리려면 한없이 기다려야 하죠. 그렇기 때문에 프레임워크의 핵심기능만을 유지하고, 다른 기능들의 확장에 기준을 둔 것이 바로 마이크로 프레임워크입니다. 다른 것보다도 웹 개발시 매우 간편하고 빠르게 개발할 수 있습니다. 단적으로 이를 보여주는 것은 예제 코드일텐데, 아래는 "파이썬 웹 프로그래밍 : 플라스크를 이용한 쉽고빠른 웹 개발" 에서 발췌한 예제 코드와 설명입니다. # hell.py from flask import Flask app = Flask(__name__) @app.rou..