Flaskことはじめ

今回は、最近、取り組んでいるFlaskについて書いてみたいと思います。
私は元々、Pythonを使っていましたが概ねデータ分析の用途が中心でした。しかし、まったく別の文脈から簡単なウェブサービスを作ってみることになり、ちょうどよいフレームワークを探していたところ、お世話になっているITエンジニアのコミュニティでFlaskを紹介してもらい、試しに始めてみたという具合です。

さて、Flaskは有名なフレームワークだそうなので、ググればいろいろ「教材」になりそうな素材は出てくるのですが、どれから見ていくと良いのかちょっと手探りで始めることになりました。大学院時代に培った「初めて取り組むことはとにかくいろいろテキストや文献をあたってその分野の知識マップを作る」というノウハウを生かし、10件くらいのサイトを見て回ったのですが、やはり初めは公式ドキュメントから始めることにしました。

かくして、こちらのサイトの「Quick Start」に載っている説明を読みながらサンプルを自分のPythonの環境にコピペして、Flaskの第一歩を踏み出すことになりました。
https://flask.palletsprojects.com/en/2.1.x/

初めはこんな感じの1枚ものの、しかも「Hello, World!」と表示するだけのサイトから始めてみました。このコードを書いたテキストファイルを「HelloWorld.py」として保存し、Flaskのサーバを立ち上げた上でブラウザから呼び出します。表示されたら成功です。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

app.run(port=12345, debug=False)

そこからスタートし、次に「routing」を学びました。既にRuby on Railsなどを触っている方にとっては難しくないと思います。このメインとなるプログラムファイルに、指定したページを表示させるための機能です。「http://localhost:12345/hello/」としたら、下半分のプログラムが実行されて「Hello, World」が表示される仕組みです。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Index Page'

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

app.run(port=12345, debug=False)

続いて、qiitaの記事を参考に、次の2点を試してみました。
https://qiita.com/kiyokiyo_kzsby/items/0184973e9de0ea9011ed

  • HTMLのテンプレートにプログラムで作った文言を載せる。

  • 前のページから受け取った変数に従って動作を変更する。

そして、最後に前に自分で書いてあったデータベースにアクセスしてデータをやりとりするコードをくっつけ、データベースと相互にデータをやりとりしながらページの内容が動いていく、いわゆる「動的サイト」の原型を作ることができるようになりました。

ここまで来ると、実現できるサイトの中身がとても拡がるので、今は試しに「蔵書目録」を作っています。図書館や書店にある蔵書検索の自家製です。今、原型ができており、これから中身を作り込んでいくところです。

雑駁ですが、私のFlaskの学習の足跡を書き留めてみました。
これではお見苦しいところもあるかと思うので、いずれ時間ができたときに、きちんと清書しようと思います。

ここまでご覧いただき、ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?