Python学習【365日チャレンジ!】166日目のマスターU(@Udemy11)です。
蚊に悩まされる季節がやってきましたが、先日、虫よけを忘れてアジングに行ったところ、蚊に噛まれまくって痒くて困っています。
夜中に痒さで目をさますほど。。。
いい虫よけがないかと探してみるとかなり効果抜群の虫よけを見つけたので、速攻ポチってしまいました。
虫よけに効く有効成分ディートが30%も入って、効果が従来製品(10%)の3倍になって、強力に虫を寄せ付けないらしいので、届いたら早速使ってみたいと思います。
それでは今日もPython学習を始めましょう。
昨日の復習
昨日は、FlaskでWebサーバーを立ち上げました。
http.serverとsocketserverを使ってWebサーバーを立ち上げるよりシンプルなコードでWebサーバーの構築ができました。
詳しくは、昨日の記事をごらんください。
今日は、テンプレートを使ってFlaskでWebページを構築してみましょう。
テンプレートを使う
まずは、読み込むテンプレートを用意します。
Pycharmの作業フォルダにtemplates
というディレクトリを作成し、その中にhello.html
というHTMLファイルを作成します。
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のコードで、どちらでもアクセス可能な状態にしたときは、デフォルトでusername=None
にしたので、username
を抜いたときは、Hello None
と出力されてしまいましたが、テンプレートを利用することで簡単にどちらのアドレスでもアクセスできて、無駄な表示を消すことができました。
もちろん、Pythonのコードだけでもこのような動作をさせることができますが、中身を変更する際に、コードをいじるのではなく、HTMLファイルを変更するだけで対応できるので、テンプレートを使うほうが利便性が向上します。
対話アプリJarvisを作ったときのMCVモデルの考え方と同じようなものですね。
ハードルが下がる
どんなものでもはじめて試すときは、めちゃくちゃハードルが高くてなかなか一歩前に踏み出すことができませんよね。
でも最初の一歩を踏み出すと、あとはそれまでの戸惑いは何だったのかと思えるくらいハードルは低くなります。
プログラミングなんてその最たるもので、ほとんどの人が自分とは関係のないもので、一生触ることもないと思っているからハードルはめちゃくちゃ高く設定されています。
一方で、アプリケーションなどの裏側に興味を持った人は、その仕組が知りたくてたまらないので、好奇心で突っ走っていきます。
そんな人でもやはり最初のハードルは少しだけ?高かったはずです。
実際に飛んでみるとなんてことのない、ヒザ下くらいまでしかないハードルだということに気づきます。
ぜひ、最初の一歩を踏み出して新しい世界をみてみましょう。
私が現在学習しているPythonの講座がこちら!
徐々に難しくなっていきますが、スキルも少しずつレベルアップすること間違いなしです。
それでは明日もGood Python!