Python flask Webサーバー

Python学習【365日チャレンジ!】166日目のマスターU(@Udemy11)です。

蚊に悩まされる季節がやってきましたが、先日、虫よけを忘れてアジングに行ったところ、蚊に噛まれまくって痒くて困っています。

夜中に痒さで目をさますほど。。。

いい虫よけがないかと探してみるとかなり効果抜群の虫よけを見つけたので、速攻ポチってしまいました。

虫よけに効く有効成分ディートが30%も入って、効果が従来製品(10%)の3倍になって、強力に虫を寄せ付けないらしいので、届いたら早速使ってみたいと思います。

それでは今日もPython学習を始めましょう。

昨日の復習

昨日は、FlaskでWebサーバーを立ち上げました。

http.serverとsocketserverを使ってWebサーバーを立ち上げるよりシンプルなコードでWebサーバーの構築ができました。

詳しくは、昨日の記事をごらんください。

今日は、テンプレートを使ってFlaskでWebページを構築してみましょう。

テンプレートを使う

まずは、読み込むテンプレートを用意します。

Pycharmの作業フォルダにtemplatesというディレクトリを作成し、その中にhello.htmlというHTMLファイルを作成します。

Python flask Webサーバー

HTMLの言語がen(英語)になっていますが気にせずすすめます。

このHTMLの<body></body>の間に表示するデータを入力します。

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

{% if username %}
Hello {{username}}
{% else %}
Hello
{% endif %}

</body>
</html>

差し込む内容は非常に簡単なif文で、Pythonファイルで指定したURLに含まれるusernameが入力されている場合とそれ以外の場合で表示を変えています。

例えば、ブラウザーに127.0.0.1:5000/masteruを入力すれば、Hello masteruと表示されますが、赤字の部分の入力がなければHelloだけの表示になるという具合です。

Pythonファイル

昨日の学習では、127.0.0.1:5000/helloのあとにusernameを入れていたので、少しコードを変更し、127.0.0.1:5000/usernameでアクセスできるようにしてみます。

from flask import Flask
from flask import render_template


app = Flask(__name__)


@app.route('/')
@app.route('/<username>')
def hello_name(username=None):
    return render_template('hello.html', username=username)

def main():
    app.debug = True
    app.run()

if __name__ == '__main__':
    main()

最初にFlaskクラスに加えて、render_tenplateメソッドを読み込みます。

昨日のコードから変更するところは、9行目から11行目です。

/hello/<username>となっていたところを/<username>に変更し、返り値をrender_template()メソッドで、hello.htmlを読み込んで、HTMLファイルの変数usernameに、ブラウザーにアドレスを入力した時に取得するusernameを渡しています。

ブラウザーで127.0.0.1:5000/masteruを開くとHello masteruと表示され、127.0.0.1:5000を開くと、Helloだけが表示されるようになります。

Python flask Webサーバー

Pythonのコードで、どちらでもアクセス可能な状態にしたときは、デフォルトでusername=Noneにしたので、usernameを抜いたときは、Hello Noneと出力されてしまいましたが、テンプレートを利用することで簡単にどちらのアドレスでもアクセスできて、無駄な表示を消すことができました。

もちろん、Pythonのコードだけでもこのような動作をさせることができますが、中身を変更する際に、コードをいじるのではなく、HTMLファイルを変更するだけで対応できるので、テンプレートを使うほうが利便性が向上します。

対話アプリJarvisを作ったときのMCVモデルの考え方と同じようなものですね。

ハードルが下がる

どんなものでもはじめて試すときは、めちゃくちゃハードルが高くてなかなか一歩前に踏み出すことができませんよね。

でも最初の一歩を踏み出すと、あとはそれまでの戸惑いは何だったのかと思えるくらいハードルは低くなります。

プログラミングなんてその最たるもので、ほとんどの人が自分とは関係のないもので、一生触ることもないと思っているからハードルはめちゃくちゃ高く設定されています。

一方で、アプリケーションなどの裏側に興味を持った人は、その仕組が知りたくてたまらないので、好奇心で突っ走っていきます。

そんな人でもやはり最初のハードルは少しだけ?高かったはずです。

実際に飛んでみるとなんてことのない、ヒザ下くらいまでしかないハードルだということに気づきます。

ぜひ、最初の一歩を踏み出して新しい世界をみてみましょう。

私が現在学習しているPythonの講座がこちら!

Udemy講師 酒井さん プログラミング Python

徐々に難しくなっていきますが、スキルも少しずつレベルアップすること間違いなしです。

それでは明日もGood Python!