AI School_0331TIL

오늘은 글리치로 어제 배웠던 API를 마저 진행했다.
DELETE API를 새로 만들어보았다.

from flask import Flask, request, redirect


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 ...."}
]
nextId = 4

def template(content, id=None):
  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>
        <li>
          <form action="/delete/{id}/" method="POST">
            <input type="submit" value="delete">
          </form>
        </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}', id)

@app.route('/create/')
def create():
  content = '''
    <form action="/create_process/" method="POST">
      <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('/create_process/', methods=['POST'])
def create_process():
  global nextId
  title = request.form['title']
  body = request.form['body']
  newTopic = {"id":nextId, "title": title, "body": body}
  topics.append(newTopic)
  nextId = nextId + 1
  return redirect(f'/read/{nextId-1}/')

@app.route('/delete/<int:id>', methods=['POST'])
def delete(id):
  for topic in tipics:
    if topic['id']==id:
      topics.remove(topic)
      break;
  return redirect('/')


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


app.run()

그리고, 데이터베이스(관계형데이터베이스)를 배우기 위해
SQL lite 버전을 깔아 데이터베이스를 다뤄보았다.

sqlite3 studio로 테이블 만든 뒤 컬럼 추가

퀴리문으로 행 추가하기

DELETE API 부분이 헷갈렸지만,
강사님께서 내일 전체적으로 한번 더 짚어주신다고 하셔서 안심이 되었다
따로 플라스크로 웹을 스스로 만들어볼 수 있을 때까지 복습을 해봐야겠다.

좋은 웹페이지 즐겨찾기