スライドショースライドショー

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

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

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

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

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

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

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

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には様々な関数なども用意されているので是非マスターしてみてください!それでは!!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説