플라스크는 웹 페이지를 찍어내는 공장같은 개념이다.
회계에서 상품과 제품을 구분할 수 있는데,
.html파일은 상품에 비유할 수 있고, Flask는 제품에 비유할 수 있다.
Flask
웹서버를 만들 때 필요로 하는 여러가지 것들을 제공하는 라이브러리이다.
Flask 공식 홈페이지 : https://flask.palletsprojects.com/en/2.1.x/
QuickStart - 플라스크를 구현시킬 수 있는 예제 코드
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
Glitch(https://glitch.com/)를 활용해서 수업을 진행했다.
구름ide와 비슷하다고 보면 되는데, 5분동안 아무 동작을 하지 않으면 서버가 닫힌다.
(한달에 8달러정도 지불하면 계속 사용할 수 있다.)
검색창에서 'flask'를 검색하고 remix onwn을 클릭하면 코드 수정이 가능하다!
# For development use (simple logging, etc):
python3 server.py
# For production use:
# gunicorn server:app -w 1 --log-file -
기본적으로 id, title, body를 딕셔너리로 만들고 만들어진 데이터를 리스트로 묶는다.
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
반복되는 코드는 하나의 코드를 만들어서 함수화를 시키고 함수를 호출한다.
def template(content):
liTags = ''
for topic in topics:
liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
return f'''
<html>
<body>
<h1><a href="/">WEB</a></h1>
<ol>
{liTags}
</ol>
{content}
<ul>
<li><a href="/create/">create</a></li>
</ul>
</body>
</html>
'''
웹 프레임 워크를 공부할 때는 라우팅을 어떻게 하는 지 먼저 확인해야 한다.
@app.route('/post/<int:post_id>')
def show_post(post_id):
# show the post with the given id, the id is an integer
return f'Post {post_id}'
이 예제코드를 활용해서 입력이 일어날 때마다 id로 이동해서 페이지를 만들도록 한다.
챗봇을 만들면서 Flask를 사용해 본 경험은 있지만,
python으로만 사용했었기 때문에 Flask로 데이터를 전송하고, 가져오는 용도로만 썼었다.
html언어와 python을 활용해서
서버구현과 데이터를 전달하고 출력하는 것까지 실습해볼 수 있어서 좋았다.