[6일차] Flask

이나겸·2022년 3월 30일
0
post-thumbnail

1. 학습내용

플라스크

플라스크는 웹 페이지를 찍어내는 공장같은 개념이다.
회계에서 상품과 제품을 구분할 수 있는데,

  • 상품 : 상인들이 파는 것
  • 제품 : 제조사가 만드는 것

.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

Glitch(https://glitch.com/)를 활용해서 수업을 진행했다.
구름ide와 비슷하다고 보면 되는데, 5분동안 아무 동작을 하지 않으면 서버가 닫힌다.
(한달에 8달러정도 지불하면 계속 사용할 수 있다.)
검색창에서 'flask'를 검색하고 remix onwn을 클릭하면 코드 수정이 가능하다!

  • Glitch 안에도 터미널이 있어서 python 버전을 확인할 수 있다.
  • start.sh 파일의 python을 python3으로 변경한다.
# 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로 이동해서 페이지를 만들도록 한다.

2. 중요내용

  • 반복되는 코드는 함수화해서 호출한다.
  • routing 하면서 return할 때 html 코드를 return하면 홈페이지 구조를 수정할 수 있다.

3. 학습소감

챗봇을 만들면서 Flask를 사용해 본 경험은 있지만,
python으로만 사용했었기 때문에 Flask로 데이터를 전송하고, 가져오는 용도로만 썼었다.
html언어와 python을 활용해서
서버구현과 데이터를 전달하고 출력하는 것까지 실습해볼 수 있어서 좋았다.

0개의 댓글