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>
を足したものでデコレートしています。
11行目のコードが無いとusername
を入れなければページが見つからないエラーが起こりますが、11行目を付け加えて、13行目の関数の引数にusename=None
を加えることで引数を入れ忘れたときにも対応可能になります。
Webサーバーは楽しい
Webサーバーは普段から利用しているので、いろいろと試していると楽しくなってきます。
わからないままさわっているとおかしなことになった時にビビってしまいますが、ビビったときほどいろいろと吸収することができるチャンスです。
人は、成功するより失敗するほうが強烈な印象になります。
失敗した時に、失敗の原因を追求したり、次の改善につなげることをきちんとやっていれば、自然とスキルは身についていきます。
なので、どんどん気になるコードを試して、失敗したらその時の原因をしっかりと追求してスキルアップを図るようにしましょう!
それでは、明日もGood Python!