ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [FLASK] 홈페이지 구현
    FLASK 2022. 11. 11. 09:58

     

     

    이번엔 아래와 같이 HTML 코드를 작성하여
    웹페이지를 표현해 보겠습니다!

     

    from flask import Flask
    
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def index():
    	return '''<!doctype html>
        <html>
        	<body>
            	<h1><a href="/">WEB</a></h1>
                <ol>
                	<li><a href="/read/1/">html</a></li>
                    <li><a href="/read/1/">css</a></li>
                    <li><a href="/read/1/">javascript</a></li>
                </ol>
                <h2>Welcome</h2>
                Hello, Web
            </body>
        </html>
        '''
        
        
    @app.route('/create/')
    def create():
        return 'Create'
        
    @app.route('/read/<id>/')
    def read(id):
        return 'Read '+id

     

     

    실행하면 다음과 같은 웹페이지가 나옵니다.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    표시된 부분의 데이터를 분리해서

    파이썬의 데이터 구조로 만들고 동적으로 표현해 보겠습니다.

     

     

     

     

     

     

     

     

     

     

    topics = [
        {'id':1, 'title': 'html', 'body': 'html is ...'},
        {'id':2, 'title': 'css', 'body': 'css is ...'},
        {'id':3, 'title': 'javascript', 'body': 'javascript is ...'}
    ]

     

    순서가 있는 데이터이므로(1, 2, 3)

    리스트를 사용하고

    제목, id, 클릭했을 때 나오는 내용은 딕셔너리로

    topics라는 변수에 담았습니다.

     

     

     

     

     

     

     

     

     

     

    @app.route('/')
    def index():
        liTags = ''
        for topic in topics:
            liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
        return f'''<!doctype html>
        <html>
            <body>
                <h1><a href="/">WEB</a><h1>
                </ol>
                    {liTags}
                </ol>
                <h2>Welcome</h2>
                Hello, Web
            </body>
        </html>
        '''

     

    위와 같이 코드를 수정합니다.

     

     

    topics라는 변수에 있는 데이터들을 목록으로 표현하기 위해

    반복문인 for문을 사용했습니다.

    순회가 이루어질때 마다 liTags에 기존의 liTags를 더합니다.

     

    <a>태그를 추가하여 링크를 걸고

    /read/를 추가하여 클릭시

    Read 1, Read 2, Read 3 문구가 출력되는 상세보기 페이지로 이동합니다.

     

    기존 데이터 자리에 liTags를 넣어주고 실행하면

    처음과 같은 웹페이지를 확인할 수 있습니다!

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    목록을 클릭해 보면

    상세페이지 또한 잘 나오는 것을 확인할 수 있습니다~!

     

     

     

     

     

     

     

     

     

     

     

    ※ (지금은 리스트와 딕셔너리를 이용한

    메모리에 올라가 있는 데이터를 사용하고 있지만

    일반적인 web framework에서는

    데이터를 데이터베이스에 저장합니다 !!!

    나중에는 데이터베이스에 데이터를 읽어오는 코드로 변경하여 사용해야 합니다.)

     

     

     

     

     

     

     

     

     

    출처

    'FLASK' 카테고리의 다른 글

    [FLASK] 쓰기(Create)_2  (0) 2022.11.12
    [FLASK] 쓰기(Create)_1  (0) 2022.11.12
    [FLASK] 읽기(Read)  (0) 2022.11.11
    [FLASK] 라우팅(Routing)  (0) 2022.11.09
    [FLASK] 환경셋팅하기  (0) 2022.11.09
Designed by Tistory.