[7일차]

Ayla’s·2022년 3월 31일
0

그렇다면 1.html 2.css 3.javascript 누를 시 웹브라우저를 연결시키기 위해 route를 하나하나 입력해야하나?! 놉!!
각 웹브라우저는 주소와

    아래 부분 제외, web을 눌렀을 때와 동일

    @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!>

    코드가 훨씬 간결해졌다!!

    헷갈리는 부분 / 해결방법 / 느낀점
    헷갈리는 부분을 콕 집을수가 없다... 어제 분명 이해했다고 생각했지만 다시 보면 모두 다 새로운 코드 같다고 느껴져서 답답하다. 어디서부터가 내가 놓친 부분인 지 모르겠어서 어제 진도 나갔던 부분을 다시 복습하고 이해할 때까지 계속 붙잡다 보니 벌써 개발일지 제출 할 시간이 되었다ㅜㅜ 시간이 촉박하여 제대로 정리하지 못한 채 개발일지 제출하는 점이 조금 마음에 걸리지만.. 저녁 먹고 깔끔하게 다시 정리해보아야겠다!!

0개의 댓글

관련 채용 정보