최초의 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 추가>
라우팅 파일은 항상이 위치에 없다고 버리고 싶다.
다른 폴더에 저장하고 라우팅하는 템플릿의 경로를 조정해 보았지만 안 된다. 프레임워크 내에서 정해져 있을지도 모른다.
각 파일의 내용
layout.html
layout.html
<!DOCTYPE html>
<html>
<head>
<titile>{{ title }}</titile>
</head>
<body>
{% block content %}
<!-- main-->
{% endblock %}
</body>
</html>
hello.html
hello.html
<!-- layout.htmlをテンプレートに拡張する-->
{% extends "layout.html" %}
<!-- block content ~ endblock-の範囲がテンプレートの同宣言範囲に差し込まれる -->
{% block content %}
<h3>Hello</h3>
こんにちは。{{ name }}さん。
{% endblock %}
헉. 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)
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이지요.
어디까지나, 프레임워크의 발판이라면 공부할 가치가 있을까.
Reference
이 문제에 관하여(최초의 Flask), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kekosh/items/2801a149f4c0a445d775텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)