그렇다면 1.html 2.css 3.javascript 누를 시 웹브라우저를 연결시키기 위해 route를 하나하나 입력해야하나?! 놉!!
각 웹브라우저는 주소와
@app.route("/read/1/") #1 자리를 변수로 지정하는 route 세팅 필요
1이 가변적이라고 표시하기 위해 <>로 입력 후 id라고 지정, 숫자가 되어야하므로 int 사용
("/read/<int:id>/")
def read(id라고 입력해야함<>안과 동일하게 입력):
title/body값 초기화 후 for문과 if문 사용
topics의 원소를 하나하나 꺼냈을 때 id가 /read/옆 변수자리에 입력 된 id와 일치할 경우 title과 body값을 추출
기존 <h2></h2>로 작성했던 부분을
-->
return ''' #따옴표 아래위 3개: 코드가 길어 여러줄이 필요하기 때문
<html>
<body>
<h1><a href="/">WEB</a></h1>
<ol>
{liTags}
</ol>
<h2>Read</h2>
Hello, Read!
</body>
</html>
'''
@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; 일치하는 데이터를 찾았다면 for문을 실행시킬 필요가 없으므로
return '''
<html>
<body>
<h1><a href="/">WEB</a></h1>
<ol>
{liTags}
</ol>
<h2>{title}</h2>
{body}
</title>
</html>
'''
아래의 중복코드를 def template()로 함수화하자
def template(content):
return f'''
<html>
<body/>
<h1><a href="/">WEB<a></h1>
<ol>
{liTags}
</ol>
<h2>Welcome</h2>
Hello,WEB! --> {content}
</body>
</html>
'''
@app.route("/")
index():
return template('<h2>Welcome</h2>Hello,WEB!>
코드가 훨씬 간결해졌다!!
헷갈리는 부분 / 해결방법 / 느낀점
헷갈리는 부분을 콕 집을수가 없다... 어제 분명 이해했다고 생각했지만 다시 보면 모두 다 새로운 코드 같다고 느껴져서 답답하다. 어디서부터가 내가 놓친 부분인 지 모르겠어서 어제 진도 나갔던 부분을 다시 복습하고 이해할 때까지 계속 붙잡다 보니 벌써 개발일지 제출 할 시간이 되었다ㅜㅜ 시간이 촉박하여 제대로 정리하지 못한 채 개발일지 제출하는 점이 조금 마음에 걸리지만.. 저녁 먹고 깔끔하게 다시 정리해보아야겠다!!