본문 바로가기
블록체인/[파공블]파이썬으로 공부하는 블록체인

0. Python 기초 - 내 홈페이지 만들기(Flask)

by 일등박사 2022. 6. 9.
728x90

블록체인을 기술로서 활용하기 위해서는 결국

일반 사용자들이 App으로서 활용할 수 있도록

사이트 혹은 어플리케이션이 있어야합니다!

[파공블]에서는 블록체인을 구축한 뒤

실제 거래를 해보는 사이트(DApp)를 제작하여

거래내역을 블록체인 상에 저장할 것입니다!!

 

그래서!! 사이트 만들고 운영하기 위한 기본적인 내용을 배워볼 예정입니다!

 


여러분!!

파이썬을 어떤 용도에 활용하시나요!??

저는 처음 pandas와 함께 데이터 분석을 하기 위하여 시작하였는데요~!

 

파이썬을 통하여 홈페이지를 만들 수 있다는 것을 알고계신가요!

웹사이트의 안부분 즉 Back-end를 파이썬으로 구축할 수 있다는 것인데요!!

 

 

이번 챕터에서는 웹사이트의 안 부분 즉 Back-end를 구현하는

 Python의 패키지, flask에 대하여 간략해 공부해볼 예정입니다!!

 

anaconda 의 환경이라면 이미 flask 가 설치되어 있을 것입니다!

그렇지 않다면 pip를 통해서 flask를 설치해주시구요!!

 

우선!! 코드부터 보시지요!@

아래와 같이 간단한 코드를 실행시켜보면

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Flask 웹사이트다!'

app.run()

노트북이 계속 실행되면서 위의 파랑색과 같은 사이트가 나타납니다!!

한번 클릭해볼까요!?

바로 나의 웹사이트가 가동되는것을 볼 수 있습니다!!

이제 아래의 2가지 기능을 추가로 테스해 보겠습니다!!

 

1. html 파일을 로드하기!!
이번에는 미리 준비해둔 html 파일을 웹사이트에서 보이게 해보겠습니다!!

html이 뭔지 잘 모르신다구요!?

걱정마세요!

그냥 따라해보세요!!^^

 

첫번쨰로 flask 노트북이 있는 디렉토리에 templates 라는 폴더를 만들어줍니다!!

그리고 templates 폴더 안에 sample.html 이라는 파일을 새로 만들어 줍니다!!

html 내부에는 간단한 텍스트만 입력해줍니다!

 

이제 flask 를 통하여 이 html 파일을 보이게 해볼게요!!

from flask import Flask
from datetime import datetime
from flask import render_template

app = Flask(__name__)


@app.route('/')
def index():
     return 'Flask 웹사이트다!'

@app.route('/html_sample')
def html_sample():
    return render_template('sample.html')

app.run()

코드를 구동시키면 방금과 같이 코드가 계속 돌아갑니다!!

다시한번 URL을 누르면 처음과 변함 없는 사이트가 나타납니다!!

 

이번엔 기존 URL에 /html_sample을 추가해보아요!!

바로 나만의 html을 읽은 사이트를 보여주는 것을 보실 수 있습니다!!

어떄요!? 쉽지요!?^^

 

한번 더 해볼까요!?

이번엔 제가 naver의 html을 복사해왔습니다!!

naver.html
0.33MB

이 파일을 다운받아 똑같은 위치에 위치시킨뒤 

 naver부분을 추가시켜줍니자!!

from flask import Flask
from datetime import datetime
from flask import render_template

app = Flask(__name__)


@app.route('/')
def index():
     return 'Flask 웹사이트다!'

@app.route('/html_sample')
def html_sample():
    return render_template('sample.html')

### 아래 부분을 추가!!!
@app.route('/naver')
def naver():
    return render_template('naver.html')

app.run()

어때요!??

나의 웹사이트에서 네이버 html을 그대로 불러와 보여주는것을 확인할 수 있습니다!!

 

재미있지않나요!?^^

 

2. html파일에 백엔드로 데이터 넣기!!

 

이제 "백앤드" 라는 것을 진짜 해볼게요!!

수박의 안쪽부분과 같이 내부에서 작업을 진행해보겠습니다!

 

먼저 html 파일 backend_sample.html을 만들어줍니다!

backend_sample.html 파일 내부는 아래와 같이 간단히 구성해보아요!

중괄호를 두번한 {{ }} 부분에는 백엔드, 즉 파이썬에서 작업한 내용이 보여질 예정입니니다!

가지고 있는 비트코인개수
{{backend_result}}

이젠 flask 의 코드를 봅시다!!!

backend_sample 부분이 추가되었고, 

html 파일에서 {{}} 안에 들어갔던 backend_result라는 값에

"이 데이터를 보낸다!!" 라고 쓰여있었습니다!!

from flask import Flask
from datetime import datetime
from flask import render_template

app = Flask(__name__)


@app.route('/')
def index():
     return 'Flask 웹사이트다!'

@app.route('/html_sample')
def html_sample():
    return render_template('sample.html')

@app.route('/naver')
def naver():
    return render_template('naver.html')

@app.route('/backend_sample')
def backend_sample():
    return render_template('backend_sample.html', backend_result = "1000 개!!")

app.run()

 

실제 사이트에 방문해보면 어떨까요!?

위와 같이 파이썬에서 받아온 데이터를 보여주고 있었습니다!!

 

조금만 더 나아가 볼까요!?

이번엔 3+6+100을 더한 값을 보내보았습니다!!

@app.route('/backend_sample')
def backend_sample():
    num_of_coin = 3+6+100
    return render_template('backend_sample.html', backend_result = num_of_coin)

그러자 웹사이트에서는 아래와 같이 실제 더한 값인 109가 나옵니다!!

이해가 되시나요!?

 

앞으로 우리는 파이썬으로 만든 블록체인의 결과값을 사이트에서 위와같이 보여줄 예정입니다!!

 


우리가 사이트에서 보는 값은

 

1. 파이썬에서 계산한 것이다(backend)

2. 파이썬(backend)에서 계산한 값은 flask를 통해 웹사이트 처엄 보여진다

 

라고 이해해주시면 좋을것 같아요!^^

 

이상으로 Python flask에 대하여 알아보았습니다!

 

728x90

댓글