최초의 Flask

5030 단어 파이썬Flask

Flask 모듈 설치


(base) root@e8cf64ce12e9:/home/continuumio#pip install flask 

폴더 구조 만들기



Flask에서 사용하는 HTML 파일은 프로젝트 폴더에 "templates"라는 이름의 폴더를 만들고 저장해야합니다.
참고 : 템플릿이라는 이름이지만, 요점은 Flask에서 사용하는 HTML 파일은 모두 여기에 저장하면 된다.
.
├── __pycache__
├── hello.py
└── templates
    ├── hello.html
    └── layout.html

여담 : 위와 같은 디렉토리 구조를 얻으려면 "tree"명령을 별도로 설치해야합니다.
Docker 환경이 Ubuntu 이었기 때문에 「apt install tree」로 인스톨 할 수 있었다. Mac 로컬의 경우 설치는 별도 작업이 필요 싶다.

각 파일의 역할은 다음과 같습니다.
- hello.py: 애플리케이션 라우팅 파일.
<2020/08/09 추가>
라우팅 파일은 항상이 위치에 없다고 버리고 싶다.
다른 폴더에 저장하고 라우팅하는 템플릿의 경로를 조정해 보았지만 안 된다. 프레임워크 내에서 정해져 있을지도 모른다.
  • template/hello.html: 화면의 일부를 구성하는 html 파일. 그리고 어떤 즉 화면을 구성하는 부품.
  • templates/layout.html: 모든 Html 파일의 기반으로 html 파일. 이 파일의 부분 부분에 hello.html과 같은 파트로서의 html 피알이 짜넣어져 가는 이미지.

  • 각 파일의 내용



    layout.html



    layout.html
    <!DOCTYPE html>
    <html>
    <head>
        <titile>{{ title }}</titile>
    </head>
    <body>
        {% block content %}
        <!-- main-->
        {% endblock %}
    </body>
    </html>
    
  • {{ val}} : val 부분은 같은 이름의 변수 값을 반영합니다.
  • {% block content%}~{% endblock %}: 이 태그 범위에 확장 부분으로 html 파일에 나열된 {% block content%}~{% endblock %} 스크립트가 포함된 이미지

  • hello.html



    hello.html
    <!-- layout.htmlをテンプレートに拡張する-->
    {% extends "layout.html" %}
    <!-- block content ~ endblock-の範囲がテンプレートの同宣言範囲に差し込まれる -->
    {% block content %}
    <h3>Hello</h3>
    こんにちは。{{ name }}さん。
    {% endblock %}
    
  • extends로 지정된 HTML에이 HTML의 블록 내용 내용을 반영합니다. 상속의 이미지.

  • 헉. py



    hello.py
    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    @app.route('/')
    def hello():
        name = 'TEST'
        # return name
        return render_template('hello.html', tite="flask test", name=name)
    
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=5000, debug=True)
    
  • "render_template"을 가져오면 Jinja2 템플릿의 기능을 사용할 수 있습니다.
  • render_template([호출 html],[[템플릿에 전달할 변수 이름 = 값],...]
  • "if name == "main":"명령줄에서 python 파일을 실행할 때 별다른 인식으로 OK.
  • app_run([host=0,0,0,0],[port=XXXX],[debug=XXXX])에서 응용 프로그램을 시작합니다.
    host라든지 포트는 여기서 지정하지 않아도 움직이는 방법이 있을 것 같지만, 냄새 조사한다.

  • 실행


    (base) root@e8cf64ce12e9:/home/continuumio# python hello.py
     * Serving Flask app "hello" (lazy loading)
     * Environment: production
       WARNING: This is a development server. Do not use it in a production deployment.
       Use a production WSGI server instead.
     * Debug mode: on
     * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
     * Restarting with inotify reloader
     * Debugger is active!
     * Debugger PIN: 197-268-519
    



    화면을 볼 수 있었다.

    마지막으로

    우선 최저한의 사용법만 알았지만, 실무로 Flask 사용하는 것은 없을 것이고, 사업회사는 Django이지요.
    어디까지나, 프레임워크의 발판이라면 공부할 가치가 있을까.

    좋은 웹페이지 즐겨찾기