파이선 3 지원 환경이 구성되었으면 라즈베리 파이 3에서 와이파이 코딩 지원을 위한 Flask 모듈을 설치하도록 한다. 파이선의 모듈은 단순 라이브러리 개념 보다 넓은 의미를 지닌다. 아래의 sudo 명령 사례는 3 이란 숫자가 없으므로 파이선 2 버전 용 인듯하다. 버전3으로 하고 싶으면 python 대신 python3 으로 대체해도 무방하다.
다음은 파이선 2 버전의 Hworld.py 코드이며 파이선 3 버전으로 처리하려면 if 문 다음에 괄호 처리를 해야 한다.
Flask 모듈이 이미 설치되었으므로 모듈 즉 라이브러리로 불러 올 수 있다.
app = Flask(__name__) 는 라이브러리로서 Flask 모듈을 파이선 코드에 로딩하는 과정이다. 참고로 파이선에서 모듈이라 함은 라이브러리를 포함하는 상위의 개념임에 유의하자.
@app.route 는 Flask 오브젝트 app 를 루트 디렉토리 즉 “/”에 생성한다.
그런 다음 index(): 라는 함수를 생성한다. 이 index(): 함수 예제는 별 다른 연산 없이 ‘Hell World!’ 라는 문자열을 클라이언트 웹에 단순 출력한다.
이 코드가 LXTerminal에서 명령으로 실행되면 에러가 없을 경우 출력이 이루어지며 에러가 있다면 debug 레포트가 생성된다.
파이선 IDLE3에서 코드를 실행해 보자. 위 코드의 if 문에 괄호가 사용되면 파이선3을 뜻하다는 점에 유의하자. host를 ‘0.0.0.0’ 으로 설정하였으므로 웹에서 url 0.0.0.0:5000을 입력 후 엔터하면 아래 그림과 같은 Hello World 출력을 확인할 수 있다. 한편 Flask에서는 url 127.0.0.1:5000 이 Default 웹 화면으로 설정되어 있으므로 동일한 출력 결과 확인이 가능하다.
한편 Terminal에서 python3 Hworld.py 명령을 입력하여 실행 시키자.
라즈베리 파이 3 웹브라우저에서 출력 결과를 보려면 url 창에 0.0.0.0:5000 또는 127.0.0.1:5000 을 입력하면 된다. 또는 Terminal에서 ifconfig 명령에 의해 확인된 라즈베리 파이 3의 가상 ip에 ‘:5000’을 추가하여 url 창에 추가 입력해도 된다.
아울러 공유기나 WiFi 네트워크로 연결된 상태에서 PC의 웹브라우저나 스마트폰 웹 브라우저에서 출력 결과를 보려면 아래와 같이 라즈베리 파이 3의 가상 ip 에 ‘:5000’ 을 url 창에 추가 입력한다.
즉 Flask workframe 자체가 일종의 웹서버 역할을 수행한다는 점을 알 수 있다. 웹서버는 서버에서 코드 실행에 따라 웹의 특정 url 주소에서 출력과 입력을 담당하면서 아울러 연결된 네트워크에서까지 동일한 url 주소를 사용하는 request를 통해 모니터링이 가능하게 된다.
#Hworld.py
from flask import Flask
app=Flask(__name__)
@app.route('/')
def index():
return 'Hello world'
if(__name__=='__main__'):
app.run(debug=True, host='0.0.0.0')
'라즈베리' 카테고리의 다른 글
라즈베리 파이 Opencv 웹캠에 의한 파이선 Flask Workframe 실시간 웹서버 (0) | 2020.04.30 |
---|---|
7-3-6 보조 리튬배터리로 라즈베리파이3 파워 ON 시험 (0) | 2019.12.30 |
1-240 Ubuntu Mate 라즈베리파이+3에서 OpenCV 4 설치 (0) | 2019.09.20 |
1-239 Ubuntu Mate 라즈베리파이+3에서 Pi camera를 설치하자. (0) | 2019.09.11 |
1-238 Ubuntu Mate 라즈베리파이+3에서 Adafruit DHT11 로 온습도 측정 (0) | 2019.09.10 |