/")">def read(id):
title = ''
body = ''
for topic in topics:
if id == topic['id']:
title = topic['title']
body = topic['body']
break
return f'''
<html>
<body>
<h1><a href="/">WEB</a></h1>
<ol>
<li><a href="/read/1/">html</a></li>
<li><a href="/read/2/">css</a></li>
<li><a href="/read/3/">java</a></li>
</ol>
<h2>{title}</h2>
{body}
</body>
</html>
'''
@app.route("/read/1/") --> @app.route("/read/<int:id>/")
1 자리를 변수로 지정하는 route 세팅 필요.
1이 가변적이라고 표시하기 위해 <>로 입력 후 id라고 지정
숫자가 되어야하므로 int 사용 ("/read/<int:id>/")
def read(): 괄호 안은 <>안과 동일하게 id 라고 입력
title/body값 초기화 후 for문과 if문 사용
: topics의 원소를 하나하나 꺼냈을 때 id가 /read/옆 변수자리에 입력 된 id와 일치할 경우,topic의 title과 body값을 추출.
break; 일치하는 데이터를 찾았다면 for문을 실행시킬 필요가 없으므로
return 기존 li태그를 liTags로 변경
body의 h2 부분을 {title}과 {body}로 변경
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>
<h2>Welcome</h2>
Hello,WEB!
</body>
</html>
'''
헷갈렸던 부분 / 해결방법 / 소감
오늘도 역시나 어려웠다.
수,목,금 수업이 연결되어서 수요일 수업부터 다시 복습을 해야할 것 같았다. 이해한 부분을 다시 정리해보았다. 글로 코드를 설명하는 게 쉽지 않은 것 같다. 최대한 가독성 좋게 정리해보려 고안을 하다가 월말평가가 시간이 되어서 일단 여기까지 작성을 해보려한다!