【Python】フレームワークFlaskの基本をマスター

みなさんこんにちは!Web系エンジニアのかいです。

Pythonには使いやすくシェアの伸びが期待できる軽量なWebフレームワークであるFlaskがあります。

Flaskの特徴を知りたい
Flaskのインストール方法が知りたい
Flaskの基本的な使い方が知りたい

という方に向けて、今日はみなさんに、PythonのwebフレームワークであるFlaskについてその特徴や使用方法を説明していこうと思います!

  • Flaskとは
  • Flaskのインストール
  • Flaskを使ってみる
  • HTMLを反映させてみる
  • CSSなどで装飾してみる

実際のFlaskの使い方にも触れていこうと思いますので、これからFlaskを始めようと考えている人はぜひ参考にしてみてください!

本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

なお、その他のPythonの記事についてはこちらにまとめています。

目次

Flaskとは

引用元:fLASK http://flask.pocoo.org/

まずは、簡単にFlaskとは何か、その特徴について説明しようと思います。

FlaskはWebフレームワークで軽量で機能がそこまで備わっていないということが最大の特徴です。Webフレームワークというと、RubyのRailsやPythonではDjangoなどが有名ですね。

しかし、Djangoなどは機能などがありすぎて逆に使いにくい上にFlaskに比べるとかなり重いというデメリットがあり、個人的にはFlaskの方が好きです。機能が多く備わっていないということは、逆に自由がきくということでかつ余分な機能がないので簡単に習得することができ学習コストは低いと言えるでしょう。

Flaskをインストールしよう

ではまずは、インストールしないことには始まりませんのでFlaskをインストールしておきましょう。

ターミナルを起動して、以下のpipコマンドを実行します。

pip3 install Flask

とはいっても普通にpipで入れてやればよいです。デフォルトが3系になっている場合は

pip install Flask

で問題ありません。

Flaskを使ってみよう

それでは、恒例ではありますがFlaskでHello worldを表示させてみましょう。

まずはコードを載せておきます。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    hello = "Hello world"
    return hello

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

簡単にレビューすると、2行目でappにFlaskを定義して使えるようにしておきます。

4行目の@などはそういうものですので覚えてしまってください。そして、app.route(‘/‘)でルートのアドレスにそれ以下のものを設置します。今回であれば5~7行目のHello Worldを出力している関数のところです。

9行目はおまじないのようなもので、プログラムが呼ばれたときに、以下の動作をさせますよというものです。今回でしたらapp.run()ですね。

それでは実行してみましょう。

$ python3 hello.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

と表示されているのでこのアドレスへとんでみるとHellow Worldが表示されていることがわかりますね。Webフレームワークは自分でWebサーバーなどを立てなくて良いので簡単ですね。

ここまでが最低限の使い方です。

この後は少し応用して、HTMLはCSSを反映させてみましょう。

HTMLを反映させてみよう

HTMLを反映させるにはHTMLファイルをtemplatesフォルダに入れておく必要があります。Flaskはデフォルトではtemplatesフォルダをテンプレートの置き場として認識します。

ということでまずは、templatesフォルダにindex.htmlという名前のファイルを作ります。内容は以下の通り。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HELLO</title>
</head>
<body>
    <p>Sayhello</p>
</body>
</html>

それでは、hello.pyの方のコードをみていきましょう。

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def hello():
    html = render_template('index.html')
    return html

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

ミソとなるのは6行目のrender_template関数でHTMLを読み込んでいるというところです。

しっかりと1行目でrender_templateをimportしておくのを忘れないようにしましょう。

実行してみましょう

python3 hello.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

URLをみてみると、しっかりとSayhelloが表示されていてHTMLを読み込んでいることが分かりますね。

ちなみに、Flaskを使うとHTMLに変数を与えることもできて、

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def hello():
    html = render_template('index.html', a = '変数なう')
    return html

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

このように、render_templateオプションに変数を与えて、HTMLでは

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HELLO</title>
</head>
<body>
    <p>Sayhello</p>
    <p>{{a}}</p>
</body>
</html>

このように記載してやると変数として扱うことができます。

実行すると、しっかりと表示されていますね。

CSSで装飾してみよう

先ほどはtemplatesがHTMLなど処理してくれると説明しましたが、CSSやJSなどはstaticフォルダが認識するようデフォルトで設定されています。

ちなみにこの設定は変更することもできます。

ということでまずはstaticフォルダを作成しましょう。

mkdir static

そしてCSSを扱うためHTMLを書き直します。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HELLO</title>
    <link rel="stylesheet" href="/static/hello.css">
</head>
<body>
    <p class="hello">Sayhello</p>
    <p>{{a}}</p>
</body>
</html>

そして普通にCSSを設定します。

ここではstaticフォルダにhello.cssというファイルを作って、以下の内容を書いておきましょう。

.hello {
    color: #f00;
}

実行すると、CSSが適用されたのが確認できたのはないでしょうか?

Flaskのチュートリアルサイト

Flaskでは公式でわかりやすいチュートリアルがありますので、ぜひ参考にしてみてください。


日本語にも対応しています。

あなたが学ぶべき言語はPythonで本当に大丈夫?

ここまでPythonのフレームワークであるFlaskについて特徴や使い方を解説してきましたが、この記事をご覧の方の中には、

このままでPythonを習得できるのだろうか..

と不安になっている人もいるのではないでしょうか?そんな方には、一度立ち止まって考えて欲しいことがあります。それは、そもそもあなたがPythonを学ぶ目的は何か?本当に学ぶべき言語はPythonで間違いないか?ということです。

Pythonを学ぶ目的や理由は明確ですか?

Pythonに限った話ではありませんが、プログラミング学習はエラーとの戦いが大半なので、学ぶ目的や理由が不明確だとモチベーションが下がってしまい、挫折してしまいやすいです。

なのでもしあなたが今、

  • なんとなくPythonが人気そうだから
  • Pythonは将来性がありそうだから

といったような、ぼんやりした理由でPythonを学んでいるとしたらそれは要注意。もっと言うと、そもそもあなたが学ぶべき最適な言語が他にあるという可能性も考えられます。

どのプログラミング言語を学ぶか?は、その先のエンジニア人生を左右すると言っても過言ではありません。もしあなたが言語選定に少しでも不安があるなら、まずはプログラミング言語無料診断アプリを使ってみてください。

いくつかの簡単な質問に答えるだけで、あなたにぴったりの言語や学習プランを1分ほどで無料診断致します。

挫折せずに学びたいなら

また、学ぶべき言語はPythonで間違っていないけど、エラーとの戦いに消耗している方や、想像以上にPythonの学習に手間取っている人もいるかもしれません。

というのも、一般的にPythonは初心者でも学びやすい言語と言われていますが、そもそも機械学習という分野は、プログラミング以外にも専門的な知識や数学の知識も必要になってくるので、実は想像以上に挫折しやすい言語でもあるのです。

なのでやはり、つまずいた時に分からない部分を聞ける環境を作っておくと、挫折する事なく学習を続けられスキルを習得できる可能性がグッと上がります。

もしあなたが今Pythonの独学に少しでも不安を抱いていたり、思ったような進捗が得られてないのであれば、ぜひ弊社「侍エンジニア」をご利用ください。

弊社では機械学習専門コースを用意しており、現役エンジニアがマンツーマンであなたの学習をサポートします。また、転職支援や独立・起業サポートもしているので、学習した先も安心ですよ。

もちろん、いきなり入会するのは不安な人も多いと思います。そこで、興味がある人はまず無料カウンセリングを利用してみてください。弊社随一のコンサルタントが、あなたの理想や目標をヒアリングした上で、あなたにぴったりの学習プランを提供させて頂きます。

無料体験は下記ボタンから1分ほどで予約できるので、ぜひお気軽にご利用ください。オンラインでの利用も可能となっています。

侍エンジニア
無料カウンセリングの予約はこちら

まとめ

簡単にですが、Flaskの使い方を説明させていただきました。

  • Flaskとは
  • Flaskのインストール
  • Flaskを使ってみる
  • HTMLを反映させてみる
  • CSSなどで装飾してみる


デフォルトでは、templatesフォルダや、staticフォルダが認識されるんでしたね。

Flaskには様々な関数なども用意されているので是非マスターしてみてください!それでは!!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次