[TIL 2022](8) Flask로 python web 개발하기

8883 단어 FlaskpythonFlask

학습한 내용

  • flask는 웹페이지를 찍어내는 공장
  • flask 를 import 해서 web 페이지 제작
  • 교통정리를 해주는 'route'
  • route('name') name을 넣으면 해당 페이지로 이동할 수있게 해줌
  • href에는 html 대신에 name을 입력하면됨
from flask import Flask

app = Flask(__name__)

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("/")
def index():
  return template('<h2>Welcome</h2>Hello, WEB!')

@app.route("/read/<int:id>/")
def read(id):
  title = ''
  body = ''  
  for topic in topics :
    if topic['id'] == id:
      title = topic['title']
      body = topic['body']
      break;
  return template(f'<h2>{title}</h2>{body}')

@app.route('/create/')
def create():
  content = '''
    <form action="">
      <p><input type="text" placeholder="title"></p>
      <p><textarea placeholder="body"></textarea></p>
      <p><input type="submit" value="create"></p>
    </form>
  '''
  return template(content)

@app.route('/update/')
def update():
  return 'Update'

app.run()

학습내용 중 어려웠던 점

  • @app route 라는 것이 생소하고 어려웠다.

해결방법

  • @app route에 대해 더 검색을 해보았다.
    : route()는 데코레이터
    : 웹어플리케이션 잘 구조화된 URL, 함수와 url을 연결해줌
@app.route(‘/’) def index():
return ‘Index Page’
→ index 페이지로 이동해 값을 리턴한다.

@app.route(‘/hello’) def hello():
return ‘Hello World’

→ hello 페이지로 이동해 'hello world'값을 리턴한다.

학습소감

  • 파이썬을 통해 웹페이지를 만들 수있다는 것을 처음 알게 되었음
  • html은 반복되는 코드를 계속해서 입력해야하는데, 파이썬을 활용하면 함수를 통해서 간단하게 할 수있어 편했다.

좋은 웹페이지 즐겨찾기