flask

y's·2022년 3월 30일
0

개발일지

목록 보기
6/36

3/30

학습한 내용

flask는 웹 페이지를 찍어내는 공장이다.

비쥬얼 스튜디오 코드에 flask 설치. 실행http://127.0.0.1:5000

또는 웹으로 진행 ↓

glitch.com - 회원가입 -로그인 후 flask 검색 후 실행

https://glitch.com/edit/#!/utopian-olivine-detail?path=tc.py%3A59%3A0


start.sh - python3로 변경 저장 후 진행


라우팅




반복문으로 표현.. 문자열을 변수와 함께 쓸수 있는 f스트링사용. 작은 따옴표를 앞에서 썼으면 큰 따옴표 사용.

int: 정수로 출력

함수로 중복 코드들 묶음 template(), getContents()

form 태그는 사용자가 입력한 내용을 서버로 전송하는 역할

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="/create/">
      <p><input type="text" name="title" placeholder="title"></p>
      <p><textarea name="body" placeholder="body"></textarea></p>
      <p><input type="submit" value="create"></p>
    </form>
  '''
  return template(content)

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

app.run()

학습한 내용 중 어려웠던 점

라우팅부터, 소스 코드 작성 방식까지 다 이해하기 힘들고 어렵다..ㅠㅠ

해결방법 작성

https://www.dropbox.com/sh/sepjxwyax98bsvp/AADs1PmVYLN0MKKSTRulpvQua?dl=0 (flask 선행 학습 페이지)

https://glitch.com/edit/#!/flask---daegu-ai-school (이고잉 강사님 실시간 glitch)

https://flask.palletsprojects.com/en/2.1.x/ (flask 설치 페이지)

학습 소감

너무 어렵다.......보고 또 봐도 왜 이해가 안되는 것인지.. ㅠㅠ
그 와중에 들여쓰기까지 잘 맞춰줘야 실행되고 아이고 두야...

0개의 댓글