Flask를 사용하여 외부 파일 실행

했던 일



Flask로 웹페이지를 만듭니다.
버튼을 클릭하면 외부의 스크레이핑 파일을 실행시킨다.

Flask 준비



Flask 설치
pip install Flask

원본 파일 만들기

root.py
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello():
    return 'Hello!'


if __name__ == "__main__":
    app.run(debug=True)


실행
python root.py

그 후
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

와 출력되므로 htp://127.0.0.1:5000/ 에 액세스합니다.



Hello!가 표시됩니다.

템플릿 엔진 "Jinja2"를 사용하여 HTML 작성



import 등 추가

root.py
# from flask import Flask
# 追加↓
from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def hello():
  #return 'Hello!'
  # 追加↓
  return render_template('layout.html', title='Scraping App')


if __name__ == "__main__":
    app.run(debug=True)


templates 폴더를 만들고 그 안에 layout.html을 만듭니다.
button 태그를 클릭하여 GET 메소드를 보내도록 합니다.

layout.html
<!doctype html>
<html>

<head>
  <!--       ↓ render_templateの中で書いたtitleが入る      --> 
  <title>{{ title }}</title>
</head>

<body>
  <div class="member">
    <img src="/static/img/akimoto.jpg" alt="img1">
    <h2>秋元真夏</h2>
    <form method="GET" action="/scraping">
      <button type="submit">Start Scraping</button>
    </form>
  </div>
</body>

</html>

static 폴더를 만들고, 안에 css, img 만들고, 외형을 정돈한다.

최종 파일 내용



root.py
from flask import Flask, render_template
# ↓ Flaskを通し実行したいファイルをインポート
import scraping

app = Flask(__name__)


@app.route('/')
def hello():
    return render_template('layout.html', title='Scraping App')

# ↓ /scrapingをGETメソッドで受け取った時の処理
@app.route('/scraping')
def get():
    # ↓ 実行したいファイルの関数
    return scraping.scraping()


if __name__ == "__main__":
    app.run(debug=True)


layout.html
<!doctype html>
<html>

<head>
  <title>{{ title }}</title>
  <link rel="stylesheet" href="/static/css/index.css">
</head>

<body>
  <div class="member">
    <img src="/static/img/akimoto.jpg" alt="img1">
    <h2>秋元真夏</h2>
    <form method="GET" action="/scraping">
      <button type="submit">Start Scraping</button>
    </form>
  </div>
</body>

</html>

↓ 이번에 실행한 스크레이핑 파일
노기자카46 블로그의 이미지를 스크래핑으로 취득

최종 폴더 구성


  • /root.py
  • /scraping.py
  • /templates
  • layout.html

  • /static
  • /css
  • /index.css

  • /img
  • /akimoto.jpg



  • 표시 화면





    버튼을 클릭한 후 생성된 폴더





    지금까지 콘솔에서 실행했던 Python 파일을 웹 페이지를 통해 실행할 수 있습니다!

    좋은 웹페이지 즐겨찾기