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

アジング用にラインが届いたと思ったら、色が違うものが入っていたので、つながるかどうかわかりませんでしたので、ダメ元で直接販売店に連絡をとってみました。

そしたら、間違いなく色間違いなので、新しい商品を送ってくれるとのこと。

ま〜、迅速に対応してくれそうなので、一安心ですが、また2.3日待たないといけないと思うと、ちょっとモチベーションが下がりました。

そんなモチベーションを上げられるように、今日もPython学習を始めましょう。

昨日の復習

昨日は、Webサーバーを構築するwebserverを学習しました。

Webサーバーを立ち上げて、アクセスすると、作業フォルダがHTML化されてブラウザで表示することができました。

開くブラウザを指定してページを開くこともできました。

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

今日は、Webフレームワークを取り扱うFlaskパッケージを学習します。

Flaskとは

Flaskは、Python上で動くマイクロウェブアプリケーションフレームワークで、標準で必要最小限の機能しか搭載されていないので、動作が軽いのが特徴です。

Flaskは、シンプルで速く、高い拡張性を持っているので、必要に応じて機能をプラスすることも可能でありながら、そのシンプルさから憶えることも少なくて済むので、Webフレームワークを学習するには最適といえます。

それでは、実際にFlaskをさわっていきますが、サードパーティーライブラリであるため、インストールされていない場合は、pip install flaskでインストールしておきましょう。

もしくは、PycharmのPreferencesからインストールしても構いません。

AnacondaでPythonをインストールした場合は、すでにインストールされているかもしれませんが、インストールされているかどうかは、Pythonファイルにimport flaskとタイプしてみれば、わかります。

インストールされていない場合は、赤い~~でPycharmから指摘されますが、インストールされている場合は、importのあとに続けてfを入力した段階でflaskが候補に出てきます。

Webサーバーを立ち上げる

Webサーバーを立ち上げるのは非常に簡単なコードでできてしまいます。

from flask import Flask


app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello world'

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

if __name__ == '__main__':
    main()

まず、Flaskクラスを読み込みます。

ファイル自身の名前を入れたFlaskオブジェクトであるappを定義します。

次に7〜9行目は、デコレーターでroute/を加えたアドレスで返り値(Hello world)を表示します。

11〜13行目のmain()関数を使ってapp.run()でサーバーを走らせますが、デバッグモードをTrueにしています。

app.run()で、引数にhost=port=を付け加えることで他のサーバーにアクセスできますが、引数を入れなければ、デフォルトのIP127.0.0.1とポート5000が代入されます。

15・16行目はファイルがmainだった場合にmain()を実行するお約束のコードですね。

このファイルを実行すると、Webサーバーが稼働するので、ブラウザーから127.0.0.1:5000にアクセスするとHello worldが表示されます。

アクセスするアドレスを変える

アクセスするアドレスに任意の文字を追加して表示することも可能です。

アドレスにユーザーの名前を追加して、挨拶に取得した名前を入れるコードを追加してみます。

from flask import Flask


app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello world'

@app.route('/hello')
@app.route('/hello/<username>')
def hello_world2(username=None):
    return 'Hello world {}'.format(username)

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

if __name__ == '__main__':
    main()

追加したのは、11〜14行目です。

IPアドレスにポート番号を加えたアドレスのあとに/helloを足したものと、/hello/<username>を足したものでデコレートしています。

Python flask

11行目のコードが無いとusernameを入れなければページが見つからないエラーが起こりますが、11行目を付け加えて、13行目の関数の引数にusename=Noneを加えることで引数を入れ忘れたときにも対応可能になります。

Webサーバーは楽しい

Webサーバーは普段から利用しているので、いろいろと試していると楽しくなってきます。

わからないままさわっているとおかしなことになった時にビビってしまいますが、ビビったときほどいろいろと吸収することができるチャンスです。

人は、成功するより失敗するほうが強烈な印象になります。

失敗した時に、失敗の原因を追求したり、次の改善につなげることをきちんとやっていれば、自然とスキルは身についていきます。

なので、どんどん気になるコードを試して、失敗したらその時の原因をしっかりと追求してスキルアップを図るようにしましょう!

それでは、明日もGood Python!