어제 수업에 함수화로 정리 된 html 문서에 게시글을 작성하고 그 게시글을 지우는 방법에 대하여 수업이 진행 되었다.
어제와 오늘 작성한 코드를 보면서 내가 이해한 부분은 어디이고 이해하지 못한 부분은 어디인지를 보려한다.
from flask import Flask, request, redirect /
=> flask 프로그램을 이용하고 request,redirectet 내장된 기능을 사용한다.
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 ...."}
]
=> 'topics'라는 다항 리스트를 작성한다. 연결된 모든 html 문서에 반복적으로 들어가는 내용으로 데이터화 하여 for in 과 if문을 사용하여 html문서에 넣는다.
nextId = 4
def template(content, id=None):
=> template이라 정의하여 공통으로 들어가는 html 문서를 만듬
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("") : ("")안에 있는 url를 연경하여 이동하게 해준다.
@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'])
=>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 topics:
if topic['id'] == id:
topics.remove(topic)
break;
return redirect('/')
# @app.route('/update/')
# def update():
# return 'Update'
app.run()
사실 어제와 오늘은 그동안 내가 배웠던 python 문법이 flask에서 이런 방식으로 사용이 되고 있다 정도만 이해가 되는거 같다.